bixby-agent 0.3.1 → 0.3.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/.travis.yml +5 -2
 - data/Gemfile +4 -6
 - data/Gemfile.lock +56 -56
 - data/VERSION +1 -1
 - data/bixby-agent.gemspec +10 -16
 - data/lib/bixby-agent/agent.rb +0 -1
 - data/lib/bixby-agent/agent/handshake.rb +3 -5
 - data/lib/bixby-agent/agent/shell_exec.rb +26 -31
 - data/lib/bixby-agent/agent_handler.rb +0 -1
 - data/lib/bixby-agent/app.rb +13 -13
 - data/lib/bixby-agent/app/cli.rb +5 -19
 - data/lib/bixby-agent/version.rb +1 -1
 - data/lib/bixby-agent/websocket/client.rb +16 -4
 - data/test/base.rb +1 -2
 - data/test/helper.rb +0 -2
 - data/test/stub_eventmachine.rb +1 -0
 - data/test/test_agent.rb +2 -2
 - data/test/test_app.rb +3 -6
 - data/test/websocket/test_client.rb +5 -1
 - metadata +7 -35
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0269849a53e379766e5cbc9463c1e084af26739b
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 67f156df0b65ccbe9e17f24d5b1c4a76719cb17f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: b2afe3e7f76744a99b76a87bc96e8f19c5db169ce5b7804b6bfc7128d1ac505eec25c8e2b51c7a55db2248acfb18a1a756c8eb76f7d3283b56cc8e3df953f778
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: aefb329dced8a26e2bb3e362badeb2c5128a037b53e778facd11e7ec39555e803d15e553d2d930c28fd219402e41cb733a7aaba435fee99dd025229d985140d1
         
     | 
    
        data/.travis.yml
    CHANGED
    
    | 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            language: ruby
         
     | 
| 
       2 
2 
     | 
    
         
             
            before_install:
         
     | 
| 
      
 3 
     | 
    
         
            +
              - "gem install bundler --no-ri --no-rdoc"
         
     | 
| 
       3 
4 
     | 
    
         
             
              - "curl -sL https://s3.bixby.io/wad > ~/wad"
         
     | 
| 
       4 
5 
     | 
    
         
             
              - "chmod +x ~/wad"
         
     | 
| 
       5 
6 
     | 
    
         
             
            install:
         
     | 
| 
         @@ -11,8 +12,9 @@ after_script: 
     | 
|
| 
       11 
12 
     | 
    
         
             
              - "bundle exec rake coveralls"
         
     | 
| 
       12 
13 
     | 
    
         | 
| 
       13 
14 
     | 
    
         
             
            rvm:
         
     | 
| 
       14 
     | 
    
         
            -
              - 2. 
     | 
| 
       15 
     | 
    
         
            -
              - 1. 
     | 
| 
      
 15 
     | 
    
         
            +
              - 2.0.0-p598
         
     | 
| 
      
 16 
     | 
    
         
            +
              - 2.1.5
         
     | 
| 
      
 17 
     | 
    
         
            +
              - 2.2.0
         
     | 
| 
       16 
18 
     | 
    
         | 
| 
       17 
19 
     | 
    
         
             
            branches:
         
     | 
| 
       18 
20 
     | 
    
         
             
              only:
         
     | 
| 
         @@ -20,6 +22,7 @@ branches: 
     | 
|
| 
       20 
22 
     | 
    
         | 
| 
       21 
23 
     | 
    
         
             
            env:
         
     | 
| 
       22 
24 
     | 
    
         
             
              global:
         
     | 
| 
      
 25 
     | 
    
         
            +
                - MICRON_NO_HTML="1"
         
     | 
| 
       23 
26 
     | 
    
         
             
                - S3_REGION="us-east-1"
         
     | 
| 
       24 
27 
     | 
    
         
             
                - S3_BUCKET_NAME="io.bixby.gemcache.wad.agent"
         
     | 
| 
       25 
28 
     | 
    
         
             
                - secure: bnMJOHx5QrfTgOcxg0glw5x9mDoAJ0kKWILQaFCqwORwiJE4nh/3jYsx/uifVmSqOMXqY/9ozBwYrWeG6krPdcFCPS6mq4dVWsbtgQa31x9IWhjUg5lOt0MCrGXpq1JOD3CFIxnQ2f77hl0TzxutIfAtO023ad598+5/FVviyik=
         
     | 
    
        data/Gemfile
    CHANGED
    
    | 
         @@ -4,7 +4,7 @@ group :self do 
     | 
|
| 
       4 
4 
     | 
    
         
             
              gem 'bixby-agent', :path => "."
         
     | 
| 
       5 
5 
     | 
    
         
             
            end
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            gem 'bixby-common', "~> 0. 
     | 
| 
      
 7 
     | 
    
         
            +
            gem 'bixby-common', "~> 0.6"
         
     | 
| 
       8 
8 
     | 
    
         
             
            gem 'bixby-client', "~> 0.5"
         
     | 
| 
       9 
9 
     | 
    
         
             
            gem 'bixby-auth', "~> 0.1"
         
     | 
| 
       10 
10 
     | 
    
         
             
            #gem 'bixby-auth',   :path => "../auth"
         
     | 
| 
         @@ -16,11 +16,9 @@ gem 'daemons', "~> 1.1" 
     | 
|
| 
       16 
16 
     | 
    
         
             
            gem 'multi_json', "~> 1.8"
         
     | 
| 
       17 
17 
     | 
    
         
             
            gem 'oj', "~> 2.11"
         
     | 
| 
       18 
18 
     | 
    
         
             
            gem 'httpi', "~> 2.3"
         
     | 
| 
       19 
     | 
    
         
            -
            gem 'curb', "~> 0.8"
         
     | 
| 
       20 
19 
     | 
    
         
             
            gem 'facter', '~> 2.0.0'
         
     | 
| 
       21 
20 
     | 
    
         
             
            gem 'mixlib-cli', "~> 1.5"
         
     | 
| 
       22 
     | 
    
         
            -
            gem 'mixlib-shellout', "~>  
     | 
| 
       23 
     | 
    
         
            -
            gem 'highline', "~> 1.6"
         
     | 
| 
      
 21 
     | 
    
         
            +
            gem 'mixlib-shellout', "~> 2.0"
         
     | 
| 
       24 
22 
     | 
    
         
             
            gem 'uuidtools', "~> 2.1"
         
     | 
| 
       25 
23 
     | 
    
         
             
            gem 'logging', "~> 1.8"
         
     | 
| 
       26 
24 
     | 
    
         | 
| 
         @@ -39,7 +37,7 @@ group :development do 
     | 
|
| 
       39 
37 
     | 
    
         
             
              gem "test_guard", :github => "chetan/test_guard"
         
     | 
| 
       40 
38 
     | 
    
         | 
| 
       41 
39 
     | 
    
         
             
              # quality
         
     | 
| 
       42 
     | 
    
         
            -
              gem "cane", :platforms => [:mri_19, :mri_20]
         
     | 
| 
      
 40 
     | 
    
         
            +
              gem "cane", :platforms => [:mri_19, :mri_20, :mri_21, :mri_22]
         
     | 
| 
       43 
41 
     | 
    
         
             
            end
         
     | 
| 
       44 
42 
     | 
    
         | 
| 
       45 
43 
     | 
    
         
             
            group :development, :test do
         
     | 
| 
         @@ -52,7 +50,7 @@ group :development, :test do 
     | 
|
| 
       52 
50 
     | 
    
         
             
              gem 'mocha',   :require => false
         
     | 
| 
       53 
51 
     | 
    
         | 
| 
       54 
52 
     | 
    
         
             
              # tools
         
     | 
| 
       55 
     | 
    
         
            -
              gem "simplecov", :platforms => [:mri_19, :mri_20]
         
     | 
| 
      
 53 
     | 
    
         
            +
              gem "simplecov", :platforms => [:mri_19, :mri_20, :mri_21, :mri_22]
         
     | 
| 
       56 
54 
     | 
    
         
             
              gem "coveralls", :require => false
         
     | 
| 
       57 
55 
     | 
    
         
             
              gem "micron", :github => "chetan/micron"
         
     | 
| 
       58 
56 
     | 
    
         
             
              gem 'rb-inotify', :require => false
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            GIT
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: git://github.com/chetan/jeweler.git
         
     | 
| 
       3 
     | 
    
         
            -
              revision:  
     | 
| 
      
 3 
     | 
    
         
            +
              revision: 0334ea443c612bcbe3ebb7594b0a391fab233667
         
     | 
| 
       4 
4 
     | 
    
         
             
              branch: bixby
         
     | 
| 
       5 
5 
     | 
    
         
             
              specs:
         
     | 
| 
       6 
6 
     | 
    
         
             
                jeweler (2.0.1)
         
     | 
| 
         @@ -14,7 +14,7 @@ GIT 
     | 
|
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            GIT
         
     | 
| 
       16 
16 
     | 
    
         
             
              remote: git://github.com/chetan/micron.git
         
     | 
| 
       17 
     | 
    
         
            -
              revision:  
     | 
| 
      
 17 
     | 
    
         
            +
              revision: 576f6699e2a7ff1828ce5c333cc5fa433c0be380
         
     | 
| 
       18 
18 
     | 
    
         
             
              specs:
         
     | 
| 
       19 
19 
     | 
    
         
             
                micron (0.5.1)
         
     | 
| 
       20 
20 
     | 
    
         
             
                  ansi
         
     | 
| 
         @@ -36,19 +36,17 @@ GIT 
     | 
|
| 
       36 
36 
     | 
    
         
             
            PATH
         
     | 
| 
       37 
37 
     | 
    
         
             
              remote: .
         
     | 
| 
       38 
38 
     | 
    
         
             
              specs:
         
     | 
| 
       39 
     | 
    
         
            -
                bixby-agent (0.3. 
     | 
| 
      
 39 
     | 
    
         
            +
                bixby-agent (0.3.2)
         
     | 
| 
       40 
40 
     | 
    
         
             
                  bixby-auth (~> 0.1)
         
     | 
| 
       41 
41 
     | 
    
         
             
                  bixby-client (~> 0.5)
         
     | 
| 
       42 
     | 
    
         
            -
                  bixby-common (~> 0. 
     | 
| 
       43 
     | 
    
         
            -
                  curb (~> 0.8)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  bixby-common (~> 0.6)
         
     | 
| 
       44 
43 
     | 
    
         
             
                  daemons (~> 1.1)
         
     | 
| 
       45 
44 
     | 
    
         
             
                  facter (~> 2.0.0)
         
     | 
| 
       46 
45 
     | 
    
         
             
                  god (~> 0.13)
         
     | 
| 
       47 
     | 
    
         
            -
                  highline (~> 1.6)
         
     | 
| 
       48 
46 
     | 
    
         
             
                  httpi (~> 2.3)
         
     | 
| 
       49 
47 
     | 
    
         
             
                  logging (~> 1.8)
         
     | 
| 
       50 
48 
     | 
    
         
             
                  mixlib-cli (~> 1.5)
         
     | 
| 
       51 
     | 
    
         
            -
                  mixlib-shellout (~>  
     | 
| 
      
 49 
     | 
    
         
            +
                  mixlib-shellout (~> 2.0)
         
     | 
| 
       52 
50 
     | 
    
         
             
                  multi_json (~> 1.8)
         
     | 
| 
       53 
51 
     | 
    
         
             
                  oj (~> 2.11)
         
     | 
| 
       54 
52 
     | 
    
         
             
                  uuidtools (~> 2.1)
         
     | 
| 
         @@ -57,11 +55,11 @@ GEM 
     | 
|
| 
       57 
55 
     | 
    
         
             
              remote: https://rubygems.org/
         
     | 
| 
       58 
56 
     | 
    
         
             
              specs:
         
     | 
| 
       59 
57 
     | 
    
         
             
                CFPropertyList (2.2.8)
         
     | 
| 
       60 
     | 
    
         
            -
                addressable (2.3. 
     | 
| 
       61 
     | 
    
         
            -
                ansi (1. 
     | 
| 
       62 
     | 
    
         
            -
                awesome_print (1. 
     | 
| 
       63 
     | 
    
         
            -
                bixby-auth (0.1. 
     | 
| 
       64 
     | 
    
         
            -
                bixby-client (0.5. 
     | 
| 
      
 58 
     | 
    
         
            +
                addressable (2.3.7)
         
     | 
| 
      
 59 
     | 
    
         
            +
                ansi (1.5.0)
         
     | 
| 
      
 60 
     | 
    
         
            +
                awesome_print (1.6.1)
         
     | 
| 
      
 61 
     | 
    
         
            +
                bixby-auth (0.1.1)
         
     | 
| 
      
 62 
     | 
    
         
            +
                bixby-client (0.5.2)
         
     | 
| 
       65 
63 
     | 
    
         
             
                  bixby-common
         
     | 
| 
       66 
64 
     | 
    
         
             
                  curb
         
     | 
| 
       67 
65 
     | 
    
         
             
                  fuzzy_file_finder
         
     | 
| 
         @@ -69,7 +67,7 @@ GEM 
     | 
|
| 
       69 
67 
     | 
    
         
             
                  mixlib-shellout
         
     | 
| 
       70 
68 
     | 
    
         
             
                  multi_json
         
     | 
| 
       71 
69 
     | 
    
         
             
                  oj
         
     | 
| 
       72 
     | 
    
         
            -
                bixby-common (0. 
     | 
| 
      
 70 
     | 
    
         
            +
                bixby-common (0.6.3)
         
     | 
| 
       73 
71 
     | 
    
         
             
                  bixby-auth (~> 0.1)
         
     | 
| 
       74 
72 
     | 
    
         
             
                  faye-websocket (~> 0.7)
         
     | 
| 
       75 
73 
     | 
    
         
             
                  httpi (~> 2.1)
         
     | 
| 
         @@ -82,13 +80,13 @@ GEM 
     | 
|
| 
       82 
80 
     | 
    
         
             
                celluloid (0.16.0)
         
     | 
| 
       83 
81 
     | 
    
         
             
                  timers (~> 4.0.0)
         
     | 
| 
       84 
82 
     | 
    
         
             
                coderay (1.1.0)
         
     | 
| 
       85 
     | 
    
         
            -
                colorize (0.7. 
     | 
| 
       86 
     | 
    
         
            -
                coveralls (0.7. 
     | 
| 
       87 
     | 
    
         
            -
                  multi_json (~> 1. 
     | 
| 
       88 
     | 
    
         
            -
                  rest-client ( 
     | 
| 
       89 
     | 
    
         
            -
                  simplecov ( 
     | 
| 
       90 
     | 
    
         
            -
                  term-ansicolor ( 
     | 
| 
       91 
     | 
    
         
            -
                  thor ( 
     | 
| 
      
 83 
     | 
    
         
            +
                colorize (0.7.5)
         
     | 
| 
      
 84 
     | 
    
         
            +
                coveralls (0.7.11)
         
     | 
| 
      
 85 
     | 
    
         
            +
                  multi_json (~> 1.10)
         
     | 
| 
      
 86 
     | 
    
         
            +
                  rest-client (>= 1.6.8, < 2)
         
     | 
| 
      
 87 
     | 
    
         
            +
                  simplecov (~> 0.9.1)
         
     | 
| 
      
 88 
     | 
    
         
            +
                  term-ansicolor (~> 1.3)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  thor (~> 0.19.1)
         
     | 
| 
       92 
90 
     | 
    
         
             
                crack (0.4.2)
         
     | 
| 
       93 
91 
     | 
    
         
             
                  safe_yaml (~> 1.0.0)
         
     | 
| 
       94 
92 
     | 
    
         
             
                curb (0.8.6)
         
     | 
| 
         @@ -101,18 +99,18 @@ GEM 
     | 
|
| 
       101 
99 
     | 
    
         
             
                  simplecov
         
     | 
| 
       102 
100 
     | 
    
         
             
                  simplecov-console
         
     | 
| 
       103 
101 
     | 
    
         
             
                  simplecov-html
         
     | 
| 
       104 
     | 
    
         
            -
                eventmachine (1.0. 
     | 
| 
      
 102 
     | 
    
         
            +
                eventmachine (1.0.7)
         
     | 
| 
       105 
103 
     | 
    
         
             
                facter (2.0.2)
         
     | 
| 
       106 
104 
     | 
    
         
             
                  CFPropertyList (~> 2.2.6)
         
     | 
| 
       107 
     | 
    
         
            -
                faraday (0.9. 
     | 
| 
      
 105 
     | 
    
         
            +
                faraday (0.9.1)
         
     | 
| 
       108 
106 
     | 
    
         
             
                  multipart-post (>= 1.2, < 3)
         
     | 
| 
       109 
     | 
    
         
            -
                faye-websocket (0. 
     | 
| 
      
 107 
     | 
    
         
            +
                faye-websocket (0.9.2)
         
     | 
| 
       110 
108 
     | 
    
         
             
                  eventmachine (>= 0.12.0)
         
     | 
| 
       111 
     | 
    
         
            -
                  websocket-driver (>= 0. 
     | 
| 
      
 109 
     | 
    
         
            +
                  websocket-driver (>= 0.5.1)
         
     | 
| 
       112 
110 
     | 
    
         
             
                ffi (1.9.6)
         
     | 
| 
       113 
111 
     | 
    
         
             
                fuzzy_file_finder (1.0.4)
         
     | 
| 
       114 
     | 
    
         
            -
                git (1.2. 
     | 
| 
       115 
     | 
    
         
            -
                github_api (0.12. 
     | 
| 
      
 112 
     | 
    
         
            +
                git (1.2.9.1)
         
     | 
| 
      
 113 
     | 
    
         
            +
                github_api (0.12.3)
         
     | 
| 
       116 
114 
     | 
    
         
             
                  addressable (~> 2.3)
         
     | 
| 
       117 
115 
     | 
    
         
             
                  descendants_tracker (~> 0.0.4)
         
     | 
| 
       118 
116 
     | 
    
         
             
                  faraday (~> 0.8, < 0.10)
         
     | 
| 
         @@ -120,16 +118,16 @@ GEM 
     | 
|
| 
       120 
118 
     | 
    
         
             
                  multi_json (>= 1.7.5, < 2.0)
         
     | 
| 
       121 
119 
     | 
    
         
             
                  nokogiri (~> 1.6.3)
         
     | 
| 
       122 
120 
     | 
    
         
             
                  oauth2
         
     | 
| 
       123 
     | 
    
         
            -
                god (0.13. 
     | 
| 
      
 121 
     | 
    
         
            +
                god (0.13.5)
         
     | 
| 
       124 
122 
     | 
    
         
             
                growl (1.0.3)
         
     | 
| 
       125 
     | 
    
         
            -
                hashie (3. 
     | 
| 
       126 
     | 
    
         
            -
                highline (1. 
     | 
| 
       127 
     | 
    
         
            -
                hirb (0.7. 
     | 
| 
      
 123 
     | 
    
         
            +
                hashie (3.4.0)
         
     | 
| 
      
 124 
     | 
    
         
            +
                highline (1.7.1)
         
     | 
| 
      
 125 
     | 
    
         
            +
                hirb (0.7.3)
         
     | 
| 
       128 
126 
     | 
    
         
             
                hitimes (1.2.2)
         
     | 
| 
       129 
127 
     | 
    
         
             
                httpi (2.3.0)
         
     | 
| 
       130 
128 
     | 
    
         
             
                  rack
         
     | 
| 
       131 
     | 
    
         
            -
                jwt (1. 
     | 
| 
       132 
     | 
    
         
            -
                listen (2.8. 
     | 
| 
      
 129 
     | 
    
         
            +
                jwt (1.4.1)
         
     | 
| 
      
 130 
     | 
    
         
            +
                listen (2.8.5)
         
     | 
| 
       133 
131 
     | 
    
         
             
                  celluloid (>= 0.15.2)
         
     | 
| 
       134 
132 
     | 
    
         
             
                  rb-fsevent (>= 0.9.3)
         
     | 
| 
       135 
133 
     | 
    
         
             
                  rb-inotify (>= 0.9)
         
     | 
| 
         @@ -140,15 +138,16 @@ GEM 
     | 
|
| 
       140 
138 
     | 
    
         
             
                metaclass (0.0.4)
         
     | 
| 
       141 
139 
     | 
    
         
             
                method_source (0.8.2)
         
     | 
| 
       142 
140 
     | 
    
         
             
                mime-types (2.4.3)
         
     | 
| 
       143 
     | 
    
         
            -
                mini_portile (0.6. 
     | 
| 
      
 141 
     | 
    
         
            +
                mini_portile (0.6.2)
         
     | 
| 
       144 
142 
     | 
    
         
             
                mixlib-cli (1.5.0)
         
     | 
| 
       145 
     | 
    
         
            -
                mixlib-shellout ( 
     | 
| 
      
 143 
     | 
    
         
            +
                mixlib-shellout (2.0.1)
         
     | 
| 
       146 
144 
     | 
    
         
             
                mocha (1.1.0)
         
     | 
| 
       147 
145 
     | 
    
         
             
                  metaclass (~> 0.0.1)
         
     | 
| 
       148 
     | 
    
         
            -
                multi_json (1. 
     | 
| 
      
 146 
     | 
    
         
            +
                multi_json (1.11.0)
         
     | 
| 
       149 
147 
     | 
    
         
             
                multi_xml (0.5.5)
         
     | 
| 
       150 
148 
     | 
    
         
             
                multipart-post (2.0.0)
         
     | 
| 
       151 
     | 
    
         
            -
                 
     | 
| 
      
 149 
     | 
    
         
            +
                netrc (0.10.3)
         
     | 
| 
      
 150 
     | 
    
         
            +
                nokogiri (1.6.6.2)
         
     | 
| 
       152 
151 
     | 
    
         
             
                  mini_portile (~> 0.6.0)
         
     | 
| 
       153 
152 
     | 
    
         
             
                oauth2 (1.0.0)
         
     | 
| 
       154 
153 
     | 
    
         
             
                  faraday (>= 0.8, < 0.10)
         
     | 
| 
         @@ -156,45 +155,48 @@ GEM 
     | 
|
| 
       156 
155 
     | 
    
         
             
                  multi_json (~> 1.3)
         
     | 
| 
       157 
156 
     | 
    
         
             
                  multi_xml (~> 0.5)
         
     | 
| 
       158 
157 
     | 
    
         
             
                  rack (~> 1.2)
         
     | 
| 
       159 
     | 
    
         
            -
                oj (2. 
     | 
| 
       160 
     | 
    
         
            -
                parallel (1. 
     | 
| 
      
 158 
     | 
    
         
            +
                oj (2.12.1)
         
     | 
| 
      
 159 
     | 
    
         
            +
                parallel (1.4.0)
         
     | 
| 
       161 
160 
     | 
    
         
             
                pry (0.10.1)
         
     | 
| 
       162 
161 
     | 
    
         
             
                  coderay (~> 1.1.0)
         
     | 
| 
       163 
162 
     | 
    
         
             
                  method_source (~> 0.8.1)
         
     | 
| 
       164 
163 
     | 
    
         
             
                  slop (~> 3.4)
         
     | 
| 
       165 
     | 
    
         
            -
                rack (1. 
     | 
| 
       166 
     | 
    
         
            -
                rake (10. 
     | 
| 
      
 164 
     | 
    
         
            +
                rack (1.6.0)
         
     | 
| 
      
 165 
     | 
    
         
            +
                rake (10.4.2)
         
     | 
| 
       167 
166 
     | 
    
         
             
                rb-fchange (0.0.6)
         
     | 
| 
       168 
167 
     | 
    
         
             
                  ffi
         
     | 
| 
       169 
168 
     | 
    
         
             
                rb-fsevent (0.9.4)
         
     | 
| 
       170 
169 
     | 
    
         
             
                rb-inotify (0.9.5)
         
     | 
| 
       171 
170 
     | 
    
         
             
                  ffi (>= 0.5.0)
         
     | 
| 
       172 
     | 
    
         
            -
                rest-client (1. 
     | 
| 
       173 
     | 
    
         
            -
                  mime-types (>= 1.16)
         
     | 
| 
      
 171 
     | 
    
         
            +
                rest-client (1.7.3)
         
     | 
| 
      
 172 
     | 
    
         
            +
                  mime-types (>= 1.16, < 3.0)
         
     | 
| 
      
 173 
     | 
    
         
            +
                  netrc (~> 0.7)
         
     | 
| 
       174 
174 
     | 
    
         
             
                safe_yaml (1.0.4)
         
     | 
| 
       175 
     | 
    
         
            -
                semver2 (3.4. 
     | 
| 
       176 
     | 
    
         
            -
                simplecov (0.9. 
     | 
| 
      
 175 
     | 
    
         
            +
                semver2 (3.4.1)
         
     | 
| 
      
 176 
     | 
    
         
            +
                simplecov (0.9.2)
         
     | 
| 
       177 
177 
     | 
    
         
             
                  docile (~> 1.1.0)
         
     | 
| 
       178 
178 
     | 
    
         
             
                  multi_json (~> 1.0)
         
     | 
| 
       179 
     | 
    
         
            -
                  simplecov-html (~> 0. 
     | 
| 
      
 179 
     | 
    
         
            +
                  simplecov-html (~> 0.9.0)
         
     | 
| 
       180 
180 
     | 
    
         
             
                simplecov-console (0.2.0)
         
     | 
| 
       181 
181 
     | 
    
         
             
                  colorize
         
     | 
| 
       182 
182 
     | 
    
         
             
                  hirb
         
     | 
| 
       183 
183 
     | 
    
         
             
                  simplecov
         
     | 
| 
       184 
     | 
    
         
            -
                simplecov-html (0. 
     | 
| 
      
 184 
     | 
    
         
            +
                simplecov-html (0.9.0)
         
     | 
| 
       185 
185 
     | 
    
         
             
                slop (3.6.0)
         
     | 
| 
       186 
     | 
    
         
            -
                term-ansicolor (1. 
     | 
| 
       187 
     | 
    
         
            -
                  tins (~> 0 
     | 
| 
       188 
     | 
    
         
            -
                thor (0. 
     | 
| 
       189 
     | 
    
         
            -
                thread_safe (0.3. 
     | 
| 
      
 186 
     | 
    
         
            +
                term-ansicolor (1.3.0)
         
     | 
| 
      
 187 
     | 
    
         
            +
                  tins (~> 1.0)
         
     | 
| 
      
 188 
     | 
    
         
            +
                thor (0.19.1)
         
     | 
| 
      
 189 
     | 
    
         
            +
                thread_safe (0.3.5)
         
     | 
| 
       190 
190 
     | 
    
         
             
                timers (4.0.1)
         
     | 
| 
       191 
191 
     | 
    
         
             
                  hitimes
         
     | 
| 
       192 
     | 
    
         
            -
                tins ( 
     | 
| 
      
 192 
     | 
    
         
            +
                tins (1.3.4)
         
     | 
| 
       193 
193 
     | 
    
         
             
                uuidtools (2.1.5)
         
     | 
| 
       194 
194 
     | 
    
         
             
                webmock (1.20.4)
         
     | 
| 
       195 
195 
     | 
    
         
             
                  addressable (>= 2.3.6)
         
     | 
| 
       196 
196 
     | 
    
         
             
                  crack (>= 0.3.2)
         
     | 
| 
       197 
     | 
    
         
            -
                websocket-driver (0. 
     | 
| 
      
 197 
     | 
    
         
            +
                websocket-driver (0.5.3)
         
     | 
| 
      
 198 
     | 
    
         
            +
                  websocket-extensions (>= 0.1.0)
         
     | 
| 
      
 199 
     | 
    
         
            +
                websocket-extensions (0.1.2)
         
     | 
| 
       198 
200 
     | 
    
         
             
                yard (0.8.7.6)
         
     | 
| 
       199 
201 
     | 
    
         | 
| 
       200 
202 
     | 
    
         
             
            PLATFORMS
         
     | 
| 
         @@ -205,23 +207,21 @@ DEPENDENCIES 
     | 
|
| 
       205 
207 
     | 
    
         
             
              bixby-agent!
         
     | 
| 
       206 
208 
     | 
    
         
             
              bixby-auth (~> 0.1)
         
     | 
| 
       207 
209 
     | 
    
         
             
              bixby-client (~> 0.5)
         
     | 
| 
       208 
     | 
    
         
            -
              bixby-common (~> 0. 
     | 
| 
      
 210 
     | 
    
         
            +
              bixby-common (~> 0.6)
         
     | 
| 
       209 
211 
     | 
    
         
             
              cane
         
     | 
| 
       210 
212 
     | 
    
         
             
              colorize
         
     | 
| 
       211 
213 
     | 
    
         
             
              coveralls
         
     | 
| 
       212 
     | 
    
         
            -
              curb (~> 0.8)
         
     | 
| 
       213 
214 
     | 
    
         
             
              daemons (~> 1.1)
         
     | 
| 
       214 
215 
     | 
    
         
             
              facter (~> 2.0.0)
         
     | 
| 
       215 
216 
     | 
    
         
             
              god (~> 0.13)
         
     | 
| 
       216 
217 
     | 
    
         
             
              growl
         
     | 
| 
       217 
     | 
    
         
            -
              highline (~> 1.6)
         
     | 
| 
       218 
218 
     | 
    
         
             
              hirb
         
     | 
| 
       219 
219 
     | 
    
         
             
              httpi (~> 2.3)
         
     | 
| 
       220 
220 
     | 
    
         
             
              jeweler!
         
     | 
| 
       221 
221 
     | 
    
         
             
              logging (~> 1.8)
         
     | 
| 
       222 
222 
     | 
    
         
             
              micron!
         
     | 
| 
       223 
223 
     | 
    
         
             
              mixlib-cli (~> 1.5)
         
     | 
| 
       224 
     | 
    
         
            -
              mixlib-shellout (~>  
     | 
| 
      
 224 
     | 
    
         
            +
              mixlib-shellout (~> 2.0)
         
     | 
| 
       225 
225 
     | 
    
         
             
              mocha
         
     | 
| 
       226 
226 
     | 
    
         
             
              multi_json (~> 1.8)
         
     | 
| 
       227 
227 
     | 
    
         
             
              oj (~> 2.11)
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.3. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.3.2
         
     | 
    
        data/bixby-agent.gemspec
    CHANGED
    
    | 
         @@ -2,16 +2,16 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            # DO NOT EDIT THIS FILE DIRECTLY
         
     | 
| 
       3 
3 
     | 
    
         
             
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         
     | 
| 
       4 
4 
     | 
    
         
             
            # -*- encoding: utf-8 -*-
         
     | 
| 
       5 
     | 
    
         
            -
            # stub: bixby-agent 0.3. 
     | 
| 
      
 5 
     | 
    
         
            +
            # stub: bixby-agent 0.3.2 ruby lib
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       8 
8 
     | 
    
         
             
              s.name = "bixby-agent"
         
     | 
| 
       9 
     | 
    
         
            -
              s.version = "0.3. 
     | 
| 
      
 9 
     | 
    
         
            +
              s.version = "0.3.2"
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       12 
12 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.authors = ["Chetan Sarva"]
         
     | 
| 
       14 
     | 
    
         
            -
              s.date = " 
     | 
| 
      
 14 
     | 
    
         
            +
              s.date = "2015-03-19"
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.description = "Bixby Agent"
         
     | 
| 
       16 
16 
     | 
    
         
             
              s.email = "chetan@pixelcop.net"
         
     | 
| 
       17 
17 
     | 
    
         
             
              s.executables = ["bixby-agent"]
         
     | 
| 
         @@ -72,14 +72,14 @@ Gem::Specification.new do |s| 
     | 
|
| 
       72 
72 
     | 
    
         
             
              ]
         
     | 
| 
       73 
73 
     | 
    
         
             
              s.homepage = "http://github.com/chetan/bixby-agent"
         
     | 
| 
       74 
74 
     | 
    
         
             
              s.licenses = ["MIT"]
         
     | 
| 
       75 
     | 
    
         
            -
              s.rubygems_version = "2.4. 
     | 
| 
      
 75 
     | 
    
         
            +
              s.rubygems_version = "2.4.6"
         
     | 
| 
       76 
76 
     | 
    
         
             
              s.summary = "Bixby Agent"
         
     | 
| 
       77 
77 
     | 
    
         | 
| 
       78 
78 
     | 
    
         
             
              if s.respond_to? :specification_version then
         
     | 
| 
       79 
79 
     | 
    
         
             
                s.specification_version = 4
         
     | 
| 
       80 
80 
     | 
    
         | 
| 
       81 
81 
     | 
    
         
             
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         
     | 
| 
       82 
     | 
    
         
            -
                  s.add_runtime_dependency(%q<bixby-common>, ["~> 0. 
     | 
| 
      
 82 
     | 
    
         
            +
                  s.add_runtime_dependency(%q<bixby-common>, ["~> 0.6"])
         
     | 
| 
       83 
83 
     | 
    
         
             
                  s.add_runtime_dependency(%q<bixby-client>, ["~> 0.5"])
         
     | 
| 
       84 
84 
     | 
    
         
             
                  s.add_runtime_dependency(%q<bixby-auth>, ["~> 0.1"])
         
     | 
| 
       85 
85 
     | 
    
         
             
                  s.add_runtime_dependency(%q<god>, ["~> 0.13"])
         
     | 
| 
         @@ -87,11 +87,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       87 
87 
     | 
    
         
             
                  s.add_runtime_dependency(%q<multi_json>, ["~> 1.8"])
         
     | 
| 
       88 
88 
     | 
    
         
             
                  s.add_runtime_dependency(%q<oj>, ["~> 2.11"])
         
     | 
| 
       89 
89 
     | 
    
         
             
                  s.add_runtime_dependency(%q<httpi>, ["~> 2.3"])
         
     | 
| 
       90 
     | 
    
         
            -
                  s.add_runtime_dependency(%q<curb>, ["~> 0.8"])
         
     | 
| 
       91 
90 
     | 
    
         
             
                  s.add_runtime_dependency(%q<facter>, ["~> 2.0.0"])
         
     | 
| 
       92 
91 
     | 
    
         
             
                  s.add_runtime_dependency(%q<mixlib-cli>, ["~> 1.5"])
         
     | 
| 
       93 
     | 
    
         
            -
                  s.add_runtime_dependency(%q<mixlib-shellout>, ["~>  
     | 
| 
       94 
     | 
    
         
            -
                  s.add_runtime_dependency(%q<highline>, ["~> 1.6"])
         
     | 
| 
      
 92 
     | 
    
         
            +
                  s.add_runtime_dependency(%q<mixlib-shellout>, ["~> 2.0"])
         
     | 
| 
       95 
93 
     | 
    
         
             
                  s.add_runtime_dependency(%q<uuidtools>, ["~> 2.1"])
         
     | 
| 
       96 
94 
     | 
    
         
             
                  s.add_runtime_dependency(%q<logging>, ["~> 1.8"])
         
     | 
| 
       97 
95 
     | 
    
         
             
                  s.add_development_dependency(%q<yard>, ["~> 0.7"])
         
     | 
| 
         @@ -113,7 +111,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       113 
111 
     | 
    
         
             
                  s.add_development_dependency(%q<rb-fsevent>, [">= 0"])
         
     | 
| 
       114 
112 
     | 
    
         
             
                  s.add_development_dependency(%q<rb-fchange>, [">= 0"])
         
     | 
| 
       115 
113 
     | 
    
         
             
                else
         
     | 
| 
       116 
     | 
    
         
            -
                  s.add_dependency(%q<bixby-common>, ["~> 0. 
     | 
| 
      
 114 
     | 
    
         
            +
                  s.add_dependency(%q<bixby-common>, ["~> 0.6"])
         
     | 
| 
       117 
115 
     | 
    
         
             
                  s.add_dependency(%q<bixby-client>, ["~> 0.5"])
         
     | 
| 
       118 
116 
     | 
    
         
             
                  s.add_dependency(%q<bixby-auth>, ["~> 0.1"])
         
     | 
| 
       119 
117 
     | 
    
         
             
                  s.add_dependency(%q<god>, ["~> 0.13"])
         
     | 
| 
         @@ -121,11 +119,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       121 
119 
     | 
    
         
             
                  s.add_dependency(%q<multi_json>, ["~> 1.8"])
         
     | 
| 
       122 
120 
     | 
    
         
             
                  s.add_dependency(%q<oj>, ["~> 2.11"])
         
     | 
| 
       123 
121 
     | 
    
         
             
                  s.add_dependency(%q<httpi>, ["~> 2.3"])
         
     | 
| 
       124 
     | 
    
         
            -
                  s.add_dependency(%q<curb>, ["~> 0.8"])
         
     | 
| 
       125 
122 
     | 
    
         
             
                  s.add_dependency(%q<facter>, ["~> 2.0.0"])
         
     | 
| 
       126 
123 
     | 
    
         
             
                  s.add_dependency(%q<mixlib-cli>, ["~> 1.5"])
         
     | 
| 
       127 
     | 
    
         
            -
                  s.add_dependency(%q<mixlib-shellout>, ["~>  
     | 
| 
       128 
     | 
    
         
            -
                  s.add_dependency(%q<highline>, ["~> 1.6"])
         
     | 
| 
      
 124 
     | 
    
         
            +
                  s.add_dependency(%q<mixlib-shellout>, ["~> 2.0"])
         
     | 
| 
       129 
125 
     | 
    
         
             
                  s.add_dependency(%q<uuidtools>, ["~> 2.1"])
         
     | 
| 
       130 
126 
     | 
    
         
             
                  s.add_dependency(%q<logging>, ["~> 1.8"])
         
     | 
| 
       131 
127 
     | 
    
         
             
                  s.add_dependency(%q<yard>, ["~> 0.7"])
         
     | 
| 
         @@ -148,7 +144,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       148 
144 
     | 
    
         
             
                  s.add_dependency(%q<rb-fchange>, [">= 0"])
         
     | 
| 
       149 
145 
     | 
    
         
             
                end
         
     | 
| 
       150 
146 
     | 
    
         
             
              else
         
     | 
| 
       151 
     | 
    
         
            -
                s.add_dependency(%q<bixby-common>, ["~> 0. 
     | 
| 
      
 147 
     | 
    
         
            +
                s.add_dependency(%q<bixby-common>, ["~> 0.6"])
         
     | 
| 
       152 
148 
     | 
    
         
             
                s.add_dependency(%q<bixby-client>, ["~> 0.5"])
         
     | 
| 
       153 
149 
     | 
    
         
             
                s.add_dependency(%q<bixby-auth>, ["~> 0.1"])
         
     | 
| 
       154 
150 
     | 
    
         
             
                s.add_dependency(%q<god>, ["~> 0.13"])
         
     | 
| 
         @@ -156,11 +152,9 @@ Gem::Specification.new do |s| 
     | 
|
| 
       156 
152 
     | 
    
         
             
                s.add_dependency(%q<multi_json>, ["~> 1.8"])
         
     | 
| 
       157 
153 
     | 
    
         
             
                s.add_dependency(%q<oj>, ["~> 2.11"])
         
     | 
| 
       158 
154 
     | 
    
         
             
                s.add_dependency(%q<httpi>, ["~> 2.3"])
         
     | 
| 
       159 
     | 
    
         
            -
                s.add_dependency(%q<curb>, ["~> 0.8"])
         
     | 
| 
       160 
155 
     | 
    
         
             
                s.add_dependency(%q<facter>, ["~> 2.0.0"])
         
     | 
| 
       161 
156 
     | 
    
         
             
                s.add_dependency(%q<mixlib-cli>, ["~> 1.5"])
         
     | 
| 
       162 
     | 
    
         
            -
                s.add_dependency(%q<mixlib-shellout>, ["~>  
     | 
| 
       163 
     | 
    
         
            -
                s.add_dependency(%q<highline>, ["~> 1.6"])
         
     | 
| 
      
 157 
     | 
    
         
            +
                s.add_dependency(%q<mixlib-shellout>, ["~> 2.0"])
         
     | 
| 
       164 
158 
     | 
    
         
             
                s.add_dependency(%q<uuidtools>, ["~> 2.1"])
         
     | 
| 
       165 
159 
     | 
    
         
             
                s.add_dependency(%q<logging>, ["~> 1.8"])
         
     | 
| 
       166 
160 
     | 
    
         
             
                s.add_dependency(%q<yard>, ["~> 0.7"])
         
     | 
    
        data/lib/bixby-agent/agent.rb
    CHANGED
    
    
| 
         @@ -14,19 +14,17 @@ module Handshake 
     | 
|
| 
       14 
14 
     | 
    
         
             
              # Register the agent with the server
         
     | 
| 
       15 
15 
     | 
    
         
             
              #
         
     | 
| 
       16 
16 
     | 
    
         
             
              # @param [String] url                 Bixby manager URL
         
     | 
| 
       17 
     | 
    
         
            -
              # @param [String]  
     | 
| 
       18 
     | 
    
         
            -
              # @param [String] password            Tenant registration password
         
     | 
| 
      
 17 
     | 
    
         
            +
              # @param [String] token               Client registration token
         
     | 
| 
       19 
18 
     | 
    
         
             
              # @param [String] tags                Comma-separated list of tags (e.g., "foo,bar")
         
     | 
| 
       20 
19 
     | 
    
         
             
              #
         
     | 
| 
       21 
20 
     | 
    
         
             
              # @return [JsonResponse] response from server
         
     | 
| 
       22 
     | 
    
         
            -
              def register_agent(url,  
     | 
| 
      
 21 
     | 
    
         
            +
              def register_agent(url, token, tags=nil)
         
     | 
| 
       23 
22 
     | 
    
         
             
                Bixby.manager_uri = @manager_uri = url
         
     | 
| 
       24 
23 
     | 
    
         
             
                ret = Bixby::Inventory.register_agent({
         
     | 
| 
       25 
24 
     | 
    
         
             
                  :uuid       => @uuid,
         
     | 
| 
       26 
25 
     | 
    
         
             
                  :public_key => self.public_key.to_s,
         
     | 
| 
       27 
26 
     | 
    
         
             
                  :hostname   => get_hostname(),
         
     | 
| 
       28 
     | 
    
         
            -
                  : 
     | 
| 
       29 
     | 
    
         
            -
                  :password   => password,
         
     | 
| 
      
 27 
     | 
    
         
            +
                  :token      => token,
         
     | 
| 
       30 
28 
     | 
    
         
             
                  :tags       => tags,
         
     | 
| 
       31 
29 
     | 
    
         
             
                  :version    => Bixby::Agent::VERSION
         
     | 
| 
       32 
30 
     | 
    
         
             
                  })
         
     | 
| 
         @@ -38,10 +38,12 @@ module ShellExec 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  old_env[r] = ENV.delete(r) if ENV.include?(r) }
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                logger.debug("exec: #{cmd}")
         
     | 
| 
      
 41 
     | 
    
         
            +
                uid = lookup_id(:uid, spec.user)
         
     | 
| 
      
 42 
     | 
    
         
            +
                gid = lookup_id(:gid, spec.group)
         
     | 
| 
       41 
43 
     | 
    
         
             
                shell = Mixlib::ShellOut.new(cmd, :input => spec.stdin,
         
     | 
| 
       42 
     | 
    
         
            -
                                                  :env   => spec.env,
         
     | 
| 
       43 
     | 
    
         
            -
                                                  :user  => uid 
     | 
| 
       44 
     | 
    
         
            -
                                                  :group => gid 
     | 
| 
      
 44 
     | 
    
         
            +
                                                  :env   => reset_env(spec.env, uid),
         
     | 
| 
      
 45 
     | 
    
         
            +
                                                  :user  => uid,
         
     | 
| 
      
 46 
     | 
    
         
            +
                                                  :group => gid)
         
     | 
| 
       45 
47 
     | 
    
         | 
| 
       46 
48 
     | 
    
         
             
                shell.run_command
         
     | 
| 
       47 
49 
     | 
    
         | 
| 
         @@ -55,51 +57,44 @@ module ShellExec 
     | 
|
| 
       55 
57 
     | 
    
         | 
| 
       56 
58 
     | 
    
         
             
              private
         
     | 
| 
       57 
59 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
              #  
     | 
| 
       59 
     | 
    
         
            -
               
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                if Process.uid != 0 then
         
     | 
| 
       64 
     | 
    
         
            -
                  logger.warn("Can't change effective uid unless running as root")
         
     | 
| 
       65 
     | 
    
         
            -
                  return nil
         
     | 
| 
      
 60 
     | 
    
         
            +
              # Merge in the correct ENV settings for the target user
         
     | 
| 
      
 61 
     | 
    
         
            +
              def reset_env(env, uid)
         
     | 
| 
      
 62 
     | 
    
         
            +
                if uid.nil? || uid == Process.uid then
         
     | 
| 
      
 63 
     | 
    
         
            +
                  # no need to change
         
     | 
| 
      
 64 
     | 
    
         
            +
                  return env
         
     | 
| 
       66 
65 
     | 
    
         
             
                end
         
     | 
| 
       67 
66 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
                 
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                  rescue ArgumentError => ex
         
     | 
| 
       72 
     | 
    
         
            -
                    logger.warn("Username '#{user}' was invalid: #{ex.message}")
         
     | 
| 
       73 
     | 
    
         
            -
                  end
         
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                begin
         
     | 
| 
       77 
     | 
    
         
            -
                  return Etc.getpwnam("bixby").uid
         
     | 
| 
       78 
     | 
    
         
            -
                rescue ArgumentError
         
     | 
| 
       79 
     | 
    
         
            -
                end
         
     | 
| 
       80 
     | 
    
         
            -
                return nil
         
     | 
| 
      
 67 
     | 
    
         
            +
                env ||= {}
         
     | 
| 
      
 68 
     | 
    
         
            +
                user = Etc.getpwuid(uid)
         
     | 
| 
      
 69 
     | 
    
         
            +
                env.merge({"HOME" => user.dir, "USER" => user.name})
         
     | 
| 
       81 
70 
     | 
    
         
             
              end
         
     | 
| 
       82 
71 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
              #  
     | 
| 
      
 72 
     | 
    
         
            +
              # Lookup the id of the given user or group
         
     | 
| 
      
 73 
     | 
    
         
            +
              #
         
     | 
| 
      
 74 
     | 
    
         
            +
              # @param [Symbol] type          :uid or :gid
         
     | 
| 
      
 75 
     | 
    
         
            +
              # @param [String] str           user or group name [Optional, default=bixby]
         
     | 
| 
       84 
76 
     | 
    
         
             
              #
         
     | 
| 
       85 
     | 
    
         
            -
              # @param [String] group         group to run as [Optional, default=bixby]
         
     | 
| 
       86 
77 
     | 
    
         
             
              # @return [Fixnum]
         
     | 
| 
       87 
     | 
    
         
            -
              def  
     | 
| 
      
 78 
     | 
    
         
            +
              def lookup_id(type, str=nil)
         
     | 
| 
       88 
79 
     | 
    
         
             
                if Process.uid != 0 then
         
     | 
| 
       89 
80 
     | 
    
         
             
                  logger.warn("Can't change effective gid unless running as root")
         
     | 
| 
       90 
81 
     | 
    
         
             
                  return nil
         
     | 
| 
       91 
82 
     | 
    
         
             
                end
         
     | 
| 
       92 
83 
     | 
    
         | 
| 
       93 
     | 
    
         
            -
                 
     | 
| 
      
 84 
     | 
    
         
            +
                method = type == :uid ? :getpwnam : :getgrnam
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                if !(str.nil? or str.empty?) then
         
     | 
| 
       94 
87 
     | 
    
         
             
                  begin
         
     | 
| 
       95 
     | 
    
         
            -
                     
     | 
| 
      
 88 
     | 
    
         
            +
                    logger.debug "Running as #{type} '#{str}'"
         
     | 
| 
      
 89 
     | 
    
         
            +
                    return Etc.send(method, str).send(type)
         
     | 
| 
       96 
90 
     | 
    
         
             
                  rescue ArgumentError => ex
         
     | 
| 
       97 
     | 
    
         
            -
                    logger.warn(" 
     | 
| 
      
 91 
     | 
    
         
            +
                    logger.warn("#{type} lookup for '#{str}' failed: #{ex.message}")
         
     | 
| 
       98 
92 
     | 
    
         
             
                  end
         
     | 
| 
       99 
93 
     | 
    
         
             
                end
         
     | 
| 
       100 
94 
     | 
    
         | 
| 
       101 
95 
     | 
    
         
             
                begin
         
     | 
| 
       102 
     | 
    
         
            -
                   
     | 
| 
      
 96 
     | 
    
         
            +
                  logger.debug "Running as #{type} 'bixby' (default)"
         
     | 
| 
      
 97 
     | 
    
         
            +
                  return Etc.send(method, "bixby").send(type)
         
     | 
| 
       103 
98 
     | 
    
         
             
                rescue ArgumentError
         
     | 
| 
       104 
99 
     | 
    
         
             
                end
         
     | 
| 
       105 
100 
     | 
    
         
             
                return nil
         
     | 
    
        data/lib/bixby-agent/app.rb
    CHANGED
    
    | 
         @@ -5,7 +5,6 @@ require 'bixby-agent/app/cli' 
     | 
|
| 
       5 
5 
     | 
    
         
             
            require 'bixby-agent/help/system_time'
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            require 'daemons'
         
     | 
| 
       8 
     | 
    
         
            -
            require 'highline/import'
         
     | 
| 
       9 
8 
     | 
    
         | 
| 
       10 
9 
     | 
    
         
             
            module Bixby
         
     | 
| 
       11 
10 
     | 
    
         
             
            class App
         
     | 
| 
         @@ -62,12 +61,9 @@ class App 
     | 
|
| 
       62 
61 
     | 
    
         
             
                    raise ConfigException, "Bad manager URI: '#{uri}'"
         
     | 
| 
       63 
62 
     | 
    
         
             
                  end
         
     | 
| 
       64 
63 
     | 
    
         | 
| 
       65 
     | 
    
         
            -
                  tenant   = @config[:tenant]   || HighLine.new.ask("Tenant: ")
         
     | 
| 
       66 
     | 
    
         
            -
                  password = @config[:password] || HighLine.new.ask("Enter agent registration password: ") { |q| q.echo = "*" }
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
64 
     | 
    
         
             
                  # register
         
     | 
| 
       69 
65 
     | 
    
         
             
                  $stdout.puts "Going to register with manager: #{uri}"
         
     | 
| 
       70 
     | 
    
         
            -
                  if (ret = agent.register_agent(uri,  
     | 
| 
      
 66 
     | 
    
         
            +
                  if (ret = agent.register_agent(uri, @config[:token], @config[:tags])).fail? then
         
     | 
| 
       71 
67 
     | 
    
         
             
                    $stderr.puts "error: failed to register with manager!"
         
     | 
| 
       72 
68 
     | 
    
         
             
                    $stderr.puts "reason:"
         
     | 
| 
       73 
69 
     | 
    
         
             
                    if ret.message =~ /900 seconds old/ then
         
     | 
| 
         @@ -125,21 +121,26 @@ class App 
     | 
|
| 
       125 
121 
     | 
    
         
             
              def start_websocket_client
         
     | 
| 
       126 
122 
     | 
    
         
             
                # make sure log level is still set correctly here
         
     | 
| 
       127 
123 
     | 
    
         
             
                Bixby::Log.setup_logger(:level => Logging.appenders["file"].level)
         
     | 
| 
       128 
     | 
    
         
            -
                logger.info "Started Bixby Agent"
         
     | 
| 
      
 124 
     | 
    
         
            +
                logger.info "Started Bixby Agent #{Bixby::Agent::VERSION}"
         
     | 
| 
       129 
125 
     | 
    
         
             
                @client = Bixby::WebSocket::Client.new(Bixby.agent.manager_ws_uri, AgentHandler)
         
     | 
| 
       130 
126 
     | 
    
         
             
                trap_signals()
         
     | 
| 
       131 
127 
     | 
    
         
             
                @client.start
         
     | 
| 
       132 
128 
     | 
    
         
             
              end
         
     | 
| 
       133 
129 
     | 
    
         | 
| 
       134 
130 
     | 
    
         
             
              def trap_signals
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
             
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
                Bixby::Signal.trap(%w{INT QUIT TERM}) do |sig|
         
     | 
| 
      
 133 
     | 
    
         
            +
                  @client.stop()
         
     | 
| 
      
 134 
     | 
    
         
            +
                  if sig == "INT" then
         
     | 
| 
       138 
135 
     | 
    
         
             
                    puts # to get a blank line after the ^C in the term
         
     | 
| 
       139 
     | 
    
         
            -
                    reason =  
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
      
 136 
     | 
    
         
            +
                    reason = " (^C)"
         
     | 
| 
      
 137 
     | 
    
         
            +
                  else
         
     | 
| 
      
 138 
     | 
    
         
            +
                    reason = ""
         
     | 
| 
       141 
139 
     | 
    
         
             
                  end
         
     | 
| 
      
 140 
     | 
    
         
            +
                  logger.warn  "caught #{sig}#{reason} signal; exiting"
         
     | 
| 
       142 
141 
     | 
    
         
             
                end
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
                Bixby::ThreadDump.trap!
         
     | 
| 
       143 
144 
     | 
    
         
             
              end
         
     | 
| 
       144 
145 
     | 
    
         | 
| 
       145 
146 
     | 
    
         
             
              # If running as root, fix ownership of var and etc dirs
         
     | 
| 
         @@ -192,8 +193,7 @@ class App 
     | 
|
| 
       192 
193 
     | 
    
         
             
              end
         
     | 
| 
       193 
194 
     | 
    
         | 
| 
       194 
195 
     | 
    
         
             
              # Copied from daemons gem. We hit a bug where closing FDs failed,
         
     | 
| 
       195 
     | 
    
         
            -
              #  
     | 
| 
       196 
     | 
    
         
            -
              # all cleanly before daemonizing.
         
     | 
| 
      
 196 
     | 
    
         
            +
              # so close them all cleanly before daemonizing.
         
     | 
| 
       197 
197 
     | 
    
         
             
              def close_fds
         
     | 
| 
       198 
198 
     | 
    
         
             
                # don't close stdin/out/err (0/1/2)
         
     | 
| 
       199 
199 
     | 
    
         
             
                3.upto(8192).each do |i|
         
     | 
    
        data/lib/bixby-agent/app/cli.rb
    CHANGED
    
    | 
         @@ -1,6 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         | 
| 
       2 
2 
     | 
    
         
             
            require 'mixlib/cli'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'highline/import'
         
     | 
| 
       4 
3 
     | 
    
         | 
| 
       5 
4 
     | 
    
         
             
            module Bixby
         
     | 
| 
       6 
5 
     | 
    
         
             
            class App
         
     | 
| 
         @@ -30,7 +29,7 @@ Where <command> is one of: 
     | 
|
| 
       30 
29 
     | 
    
         | 
| 
       31 
30 
     | 
    
         
             
            To register with the manager:
         
     | 
| 
       32 
31 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
              #{$0} --register [URL]  
     | 
| 
      
 32 
     | 
    
         
            +
              #{$0} --register [URL] --token TOKEN [--tags TAG1,TAG2]
         
     | 
| 
       34 
33 
     | 
    
         | 
| 
       35 
34 
     | 
    
         
             
            Options:
         
     | 
| 
       36 
35 
     | 
    
         | 
| 
         @@ -44,24 +43,11 @@ EOF 
     | 
|
| 
       44 
43 
     | 
    
         
             
                  :description    => "Register with the management server (optional URL, default: https://bixby.io)",
         
     | 
| 
       45 
44 
     | 
    
         
             
                  :proc           => Proc.new { |url| url || "https://bixby.io" } # default URL
         
     | 
| 
       46 
45 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
              option : 
     | 
| 
      
 46 
     | 
    
         
            +
              option :token,
         
     | 
| 
       48 
47 
     | 
    
         
             
                  :on             => :head,
         
     | 
| 
       49 
     | 
    
         
            -
                  :short          => "-t  
     | 
| 
       50 
     | 
    
         
            -
                  :long           => "-- 
     | 
| 
       51 
     | 
    
         
            -
                  :description    => " 
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
              option :password,
         
     | 
| 
       54 
     | 
    
         
            -
                  :on             => :head,
         
     | 
| 
       55 
     | 
    
         
            -
                  :short          => "-P [PASSWORD]",
         
     | 
| 
       56 
     | 
    
         
            -
                  :long           => "--password [PASSWORD]",
         
     | 
| 
       57 
     | 
    
         
            -
                  :description    => "Agent registration password (prompt if not supplied)",
         
     | 
| 
       58 
     | 
    
         
            -
                  :proc           => Proc.new { |c|
         
     | 
| 
       59 
     | 
    
         
            -
                                       if c then
         
     | 
| 
       60 
     | 
    
         
            -
                                         c
         
     | 
| 
       61 
     | 
    
         
            -
                                       else
         
     | 
| 
       62 
     | 
    
         
            -
                                         HighLine.new.ask("Enter agent registration password: ") { |q| q.echo = "*" }
         
     | 
| 
       63 
     | 
    
         
            -
                                       end
         
     | 
| 
       64 
     | 
    
         
            -
                                     }
         
     | 
| 
      
 48 
     | 
    
         
            +
                  :short          => "-t TOKEN",
         
     | 
| 
      
 49 
     | 
    
         
            +
                  :long           => "--token TOKEN",
         
     | 
| 
      
 50 
     | 
    
         
            +
                  :description    => "Client registration token"
         
     | 
| 
       65 
51 
     | 
    
         | 
| 
       66 
52 
     | 
    
         
             
              option :tags,
         
     | 
| 
       67 
53 
     | 
    
         
             
                  :on             => :head,
         
     | 
    
        data/lib/bixby-agent/version.rb
    CHANGED
    
    
| 
         @@ -20,6 +20,7 @@ module Bixby 
     | 
|
| 
       20 
20 
     | 
    
         
             
                    @handler = handler
         
     | 
| 
       21 
21 
     | 
    
         
             
                    @tries = 0
         
     | 
| 
       22 
22 
     | 
    
         
             
                    @exiting = false
         
     | 
| 
      
 23 
     | 
    
         
            +
                    @thread_pool = Bixby::ThreadPool.new(:min_size => 1, :max_size => 4)
         
     | 
| 
       23 
24 
     | 
    
         
             
                  end
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
26 
     | 
    
         
             
                  # Start the Client thread
         
     | 
| 
         @@ -53,11 +54,19 @@ module Bixby 
     | 
|
| 
       53 
54 
     | 
    
         
             
                  # the connection open forever, reconnecting as needed.
         
     | 
| 
       54 
55 
     | 
    
         
             
                  def connect
         
     | 
| 
       55 
56 
     | 
    
         | 
| 
      
 57 
     | 
    
         
            +
                    # cleanup any previously opened connections
         
     | 
| 
      
 58 
     | 
    
         
            +
                    if !@ws.nil? && ws.ready_state != Faye::WebSocket::API::CLOSED then
         
     | 
| 
      
 59 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 60 
     | 
    
         
            +
                        @ws.close
         
     | 
| 
      
 61 
     | 
    
         
            +
                      rescue Exception => ex
         
     | 
| 
      
 62 
     | 
    
         
            +
                      end
         
     | 
| 
      
 63 
     | 
    
         
            +
                    end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
       56 
65 
     | 
    
         
             
                    # Ping is set to 55 sec to workaround issues with certain gateway devices which have a hard
         
     | 
| 
       57 
66 
     | 
    
         
             
                    # 60 sec timeout, like the AWS ELB:
         
     | 
| 
       58 
67 
     | 
    
         
             
                    # http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html
         
     | 
| 
       59 
68 
     | 
    
         
             
                    @ws = Faye::WebSocket::Client.new(@url, nil, :ping => 55)
         
     | 
| 
       60 
     | 
    
         
            -
                    @api = Bixby::WebSocket::APIChannel.new(@ws, @handler)
         
     | 
| 
      
 69 
     | 
    
         
            +
                    @api = Bixby::WebSocket::APIChannel.new(@ws, @handler, @thread_pool)
         
     | 
| 
       61 
70 
     | 
    
         | 
| 
       62 
71 
     | 
    
         
             
                    ws.on :open do |e|
         
     | 
| 
       63 
72 
     | 
    
         
             
                      begin
         
     | 
| 
         @@ -82,7 +91,7 @@ module Bixby 
     | 
|
| 
       82 
91 
     | 
    
         
             
                        api.close(e)
         
     | 
| 
       83 
92 
     | 
    
         
             
                        return if @exiting or not EM.reactor_running?
         
     | 
| 
       84 
93 
     | 
    
         
             
                        if was_connected then
         
     | 
| 
       85 
     | 
    
         
            -
                          logger.info "lost connection to manager"
         
     | 
| 
      
 94 
     | 
    
         
            +
                          logger.info "lost connection to manager (code=#{e.code}; reason=\"#{e.reason}\")"
         
     | 
| 
       86 
95 
     | 
    
         
             
                        else
         
     | 
| 
       87 
96 
     | 
    
         
             
                          logger.debug "failed to connect"
         
     | 
| 
       88 
97 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -120,6 +129,9 @@ module Bixby 
     | 
|
| 
       120 
129 
     | 
    
         
             
                    end
         
     | 
| 
       121 
130 
     | 
    
         | 
| 
       122 
131 
     | 
    
         
             
                    # Start a thread to watch for auth timeout
         
     | 
| 
      
 132 
     | 
    
         
            +
                    #
         
     | 
| 
      
 133 
     | 
    
         
            +
                    # Because the CONNECT request is fully-async, we need to make sure a reply is received
         
     | 
| 
      
 134 
     | 
    
         
            +
                    # within a certain time limit. If not, reconnect
         
     | 
| 
       123 
135 
     | 
    
         
             
                    Thread.new do
         
     | 
| 
       124 
136 
     | 
    
         
             
                      begin
         
     | 
| 
       125 
137 
     | 
    
         
             
                        sec = 60
         
     | 
| 
         @@ -155,13 +167,13 @@ module Bixby 
     | 
|
| 
       155 
167 
     | 
    
         | 
| 
       156 
168 
     | 
    
         
             
                    if @exiting or not EM.reactor_running? then
         
     | 
| 
       157 
169 
     | 
    
         
             
                      # shutting down, don't try to reconnect
         
     | 
| 
       158 
     | 
    
         
            -
                      logger. 
     | 
| 
      
 170 
     | 
    
         
            +
                      logger.info "not reconnecting since we are shutting down"
         
     | 
| 
       159 
171 
     | 
    
         
             
                      return false
         
     | 
| 
       160 
172 
     | 
    
         
             
                    end
         
     | 
| 
       161 
173 
     | 
    
         | 
| 
       162 
174 
     | 
    
         
             
                    @tries += 1
         
     | 
| 
       163 
175 
     | 
    
         
             
                    if @tries == 1 then
         
     | 
| 
       164 
     | 
    
         
            -
                      logger. 
     | 
| 
      
 176 
     | 
    
         
            +
                      logger.info "retrying immediately"
         
     | 
| 
       165 
177 
     | 
    
         | 
| 
       166 
178 
     | 
    
         
             
                    # :nocov:
         
     | 
| 
       167 
179 
     | 
    
         
             
                    elsif @tries == 2 then
         
     | 
    
        data/test/base.rb
    CHANGED
    
    | 
         @@ -18,8 +18,7 @@ module Bixby 
     | 
|
| 
       18 
18 
     | 
    
         
             
                    @support_path = File.join(@git_path, "test", "support")
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
                    @manager_uri = "http://localhost:3000"
         
     | 
| 
       21 
     | 
    
         
            -
                    @ 
     | 
| 
       22 
     | 
    
         
            -
                    @password = "foobar"
         
     | 
| 
      
 21 
     | 
    
         
            +
                    @token = "ABCDEF012345"
         
     | 
| 
       23 
22 
     | 
    
         
             
                    @root_dir = Dir.mktmpdir("bixby-agent-test-")
         
     | 
| 
       24 
23 
     | 
    
         
             
                    @port = 9999
         
     | 
| 
       25 
24 
     | 
    
         | 
    
        data/test/helper.rb
    CHANGED
    
    
    
        data/test/stub_eventmachine.rb
    CHANGED
    
    
    
        data/test/test_agent.rb
    CHANGED
    
    | 
         @@ -74,11 +74,11 @@ class TestAgent < TestCase 
     | 
|
| 
       74 
74 
     | 
    
         | 
| 
       75 
75 
     | 
    
         
             
                # stub out http request
         
     | 
| 
       76 
76 
     | 
    
         
             
                stub_request(:post, "#{@manager_uri}/api").with { |req|
         
     | 
| 
       77 
     | 
    
         
            -
                  req.body =~ /inventory:register_agent/ and req.body =~ /" 
     | 
| 
      
 77 
     | 
    
         
            +
                  req.body =~ /inventory:register_agent/ and req.body =~ /"token":"#{@token}"/
         
     | 
| 
       78 
78 
     | 
    
         | 
| 
       79 
79 
     | 
    
         
             
                }.to_return(:body => response_str, :status => 200)
         
     | 
| 
       80 
80 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
                response = @agent.register_agent(@manager_uri, @ 
     | 
| 
      
 81 
     | 
    
         
            +
                response = @agent.register_agent(@manager_uri, @token)
         
     | 
| 
       82 
82 
     | 
    
         
             
                assert response.status == "success"
         
     | 
| 
       83 
83 
     | 
    
         | 
| 
       84 
84 
     | 
    
         
             
                key_file = Bixby.path("etc", "server.pub")
         
     | 
    
        data/test/test_app.rb
    CHANGED
    
    | 
         @@ -15,8 +15,7 @@ class TestApp < TestCase 
     | 
|
| 
       15 
15 
     | 
    
         
             
                ARGV.clear
         
     | 
| 
       16 
16 
     | 
    
         
             
                ARGV << "--register" << @manager_uri
         
     | 
| 
       17 
17 
     | 
    
         
             
                ARGV << "-d" << @root_dir
         
     | 
| 
       18 
     | 
    
         
            -
                ARGV << "-- 
     | 
| 
       19 
     | 
    
         
            -
                ARGV << "--password" << "mypass"
         
     | 
| 
      
 18 
     | 
    
         
            +
                ARGV << "--token" << "mytoken"
         
     | 
| 
       20 
19 
     | 
    
         | 
| 
       21 
20 
     | 
    
         
             
                response_str = MultiJson.dump({
         
     | 
| 
       22 
21 
     | 
    
         
             
                                  :data => {:server_key => "-----BEGIN RSA PUBLIC KEY-----",
         
     | 
| 
         @@ -63,8 +62,7 @@ class TestApp < TestCase 
     | 
|
| 
       63 
62 
     | 
    
         
             
                ARGV << "--register" # uri should default to bixby.io
         
     | 
| 
       64 
63 
     | 
    
         
             
                ARGV << "--debug"
         
     | 
| 
       65 
64 
     | 
    
         
             
                ARGV << "--directory" << @root_dir
         
     | 
| 
       66 
     | 
    
         
            -
                ARGV << "-- 
     | 
| 
       67 
     | 
    
         
            -
                ARGV << "--password" << "mypass"
         
     | 
| 
      
 65 
     | 
    
         
            +
                ARGV << "--token" << "mytoken"
         
     | 
| 
       68 
66 
     | 
    
         | 
| 
       69 
67 
     | 
    
         
             
                Bixby::WebSocket::Client.any_instance.expects(:start).once()
         
     | 
| 
       70 
68 
     | 
    
         | 
| 
         @@ -116,8 +114,7 @@ class TestApp < TestCase 
     | 
|
| 
       116 
114 
     | 
    
         
             
                ARGV << "--register" # uri should default to bixby.io
         
     | 
| 
       117 
115 
     | 
    
         
             
                ARGV << "--debug"
         
     | 
| 
       118 
116 
     | 
    
         
             
                ARGV << "--directory" << @root_dir
         
     | 
| 
       119 
     | 
    
         
            -
                ARGV << "-- 
     | 
| 
       120 
     | 
    
         
            -
                ARGV << "--password" << "mypass"
         
     | 
| 
      
 117 
     | 
    
         
            +
                ARGV << "--token" << "mytoken"
         
     | 
| 
       121 
118 
     | 
    
         | 
| 
       122 
119 
     | 
    
         
             
                stub_request(:get, "http://google.com/").to_return(:status => 200, :body => "", :headers => {"Date" => (Time.new+1).utc.to_s})
         
     | 
| 
       123 
120 
     | 
    
         | 
| 
         @@ -19,7 +19,10 @@ module WebSocket 
     | 
|
| 
       19 
19 
     | 
    
         
             
            class TestClient < TestCase
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
              class FakeClient
         
     | 
| 
       22 
     | 
    
         
            -
                 
     | 
| 
      
 22 
     | 
    
         
            +
                class Event
         
     | 
| 
      
 23 
     | 
    
         
            +
                  attr_reader :code, :reason
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
                attr_reader :types, :ready_state
         
     | 
| 
       23 
26 
     | 
    
         
             
                def initialize
         
     | 
| 
       24 
27 
     | 
    
         
             
                  @types = {}
         
     | 
| 
       25 
28 
     | 
    
         
             
                end
         
     | 
| 
         @@ -27,6 +30,7 @@ class TestClient < TestCase 
     | 
|
| 
       27 
30 
     | 
    
         
             
                  @types[type] = block
         
     | 
| 
       28 
31 
     | 
    
         
             
                end
         
     | 
| 
       29 
32 
     | 
    
         
             
                def trigger(type, event)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  event ||= Event.new
         
     | 
| 
       30 
34 
     | 
    
         
             
                  @types[type].call(event)
         
     | 
| 
       31 
35 
     | 
    
         
             
                end
         
     | 
| 
       32 
36 
     | 
    
         
             
                def close
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bixby-agent
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.3. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Chetan Sarva
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-03-19 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bixby-common
         
     | 
| 
         @@ -16,14 +16,14 @@ dependencies: 
     | 
|
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '0.6'
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '0.6'
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              name: bixby-client
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -122,20 +122,6 @@ dependencies: 
     | 
|
| 
       122 
122 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       123 
123 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
124 
     | 
    
         
             
                    version: '2.3'
         
     | 
| 
       125 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       126 
     | 
    
         
            -
              name: curb
         
     | 
| 
       127 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
     | 
    
         
            -
                requirements:
         
     | 
| 
       129 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       130 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       131 
     | 
    
         
            -
                    version: '0.8'
         
     | 
| 
       132 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       133 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       134 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       135 
     | 
    
         
            -
                requirements:
         
     | 
| 
       136 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       137 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
     | 
    
         
            -
                    version: '0.8'
         
     | 
| 
       139 
125 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       140 
126 
     | 
    
         
             
              name: facter
         
     | 
| 
       141 
127 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -170,28 +156,14 @@ dependencies: 
     | 
|
| 
       170 
156 
     | 
    
         
             
                requirements:
         
     | 
| 
       171 
157 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       172 
158 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       173 
     | 
    
         
            -
                    version: ' 
     | 
| 
       174 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       175 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       176 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       177 
     | 
    
         
            -
                requirements:
         
     | 
| 
       178 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       179 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       180 
     | 
    
         
            -
                    version: '1.6'
         
     | 
| 
       181 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       182 
     | 
    
         
            -
              name: highline
         
     | 
| 
       183 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       184 
     | 
    
         
            -
                requirements:
         
     | 
| 
       185 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       186 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       187 
     | 
    
         
            -
                    version: '1.6'
         
     | 
| 
      
 159 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       188 
160 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       189 
161 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       190 
162 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       191 
163 
     | 
    
         
             
                requirements:
         
     | 
| 
       192 
164 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       193 
165 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       194 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 166 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       195 
167 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       196 
168 
     | 
    
         
             
              name: uuidtools
         
     | 
| 
       197 
169 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -550,7 +522,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       550 
522 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       551 
523 
     | 
    
         
             
            requirements: []
         
     | 
| 
       552 
524 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       553 
     | 
    
         
            -
            rubygems_version: 2.4. 
     | 
| 
      
 525 
     | 
    
         
            +
            rubygems_version: 2.4.6
         
     | 
| 
       554 
526 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       555 
527 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       556 
528 
     | 
    
         
             
            summary: Bixby Agent
         
     |