right_agent 0.6.3 → 0.6.6

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.
@@ -27,8 +27,8 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'r
27
27
  module RightScale
28
28
  describe DevRepositories do
29
29
  before(:each) do
30
- @expected_repo1 = {"111" => {:repo => {:url => "bunk"}, :positions => [1,2,3]}}
31
- @expected_repo2 = {"222" => {:repo => {:url => "err"}, :positions => [4,5,6]}}
30
+ @expected_repo1 = { "111" => DevRepository.new(:git, "bunk", nil, nil, nil, nil, nil, "111", [1,2,3]) }
31
+ @expected_repo2 = { "222" => DevRepository.new(:git, "err", nil, nil, nil, nil, nil, "222", [4,5,6]) }
32
32
  end
33
33
 
34
34
  context 'empty?' do
@@ -42,7 +42,7 @@ module RightScale
42
42
 
43
43
  it 'should should not be empty when a repo is added' do
44
44
  dev_repos = DevRepositories.new
45
- dev_repos.add_repo("111", {:url=>"bunk"}, [1,2,3])
45
+ dev_repos.add_repo("111", {:repo_type=>:git, :url=>"bunk"}, [1,2,3])
46
46
  dev_repos.empty?.should be_false
47
47
  end
48
48
  end
@@ -50,13 +50,13 @@ module RightScale
50
50
  context 'add_repo' do
51
51
  it 'when initially empty, should add without error' do
52
52
  dev_repos = DevRepositories.new
53
- dev_repos.add_repo("111", {:url=>"bunk"}, [1,2,3])
53
+ dev_repos.add_repo("111", {:repo_type=>:git, :url=>"bunk"}, [1,2,3])
54
54
  dev_repos.serialized_members.first.should == @expected_repo1
55
55
  end
56
56
 
57
57
  it 'when initialized with data, should add without error' do
58
58
  dev_repos = DevRepositories.new(@expected_repo1)
59
- dev_repos.add_repo("222", {:url=>"err"}, [4,5,6])
59
+ dev_repos.add_repo("222", {:repo_type=>:git, :url=>"err"}, [4,5,6])
60
60
  dev_repos.serialized_members.first.should == @expected_repo1.merge(@expected_repo2)
61
61
  end
62
62
  end
@@ -0,0 +1,33 @@
1
+ #
2
+ # Copyright (c) 2009-2011 RightScale Inc
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #
23
+
24
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
25
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'right_agent', 'core_payload_types'))
26
+
27
+ module RightScale
28
+ describe DevRepository do
29
+ it 'should serialize 9 parameters' do
30
+ DevRepository.new.serialized_members.count.should == 9
31
+ end
32
+ end
33
+ end
@@ -95,18 +95,6 @@ describe AMQP::Client do
95
95
  end
96
96
  end
97
97
 
98
- context 'and an EM reconnect failure' do
99
- it 'should log an error and schedule another reconnect' do
100
- @sut.settings[:reconnect_delay] = true
101
-
102
- flexmock(RightScale::Log).should_receive(:error).with(/Exception caught during AMQP reconnect/, Exception, :trace).once
103
- flexmock(EM).should_receive(:reconnect).and_raise(Exception)
104
- flexmock(EM).should_receive(:add_timer).with(5, Proc).once
105
-
106
- @sut.reconnect()
107
- end
108
- end
109
-
110
98
  end
111
99
 
112
100
  end
@@ -0,0 +1,180 @@
1
+ #
2
+ # Copyright (c) 2009-2011 RightScale Inc
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+
23
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
24
+
25
+ if RightScale::Platform.linux?
26
+ describe RightScale::Platform do
27
+ before(:all) do
28
+ @platform = RightScale::Platform
29
+ end
30
+
31
+ context :volume_manager do
32
+ context :parse_volumes do
33
+ it 'can parse volumes from blkid output' do
34
+ blkid_resp = <<EOF
35
+ /dev/xvdh1: SEC_TYPE="msdos" LABEL="METADATA" UUID="681B-8C5D" TYPE="vfat"
36
+ /dev/xvdb1: LABEL="SWAP-xvdb1" UUID="d51fcca0-6b10-4934-a572-f3898dfd8840" TYPE="swap"
37
+ /dev/xvda1: UUID="f4746f9c-0557-4406-9267-5e918e87ca2e" TYPE="ext3"
38
+ /dev/xvda2: UUID="14d88b9e-9fe6-4974-a8d6-180acdae4016" TYPE="ext3"
39
+ EOF
40
+ volume_hash_ary = [
41
+ {:device => "/dev/xvdh1", :sec_type => "msdos", :label => "METADATA", :uuid => "681B-8C5D", :type => "vfat", :filesystem => "vfat"},
42
+ {:device => "/dev/xvdb1", :label => "SWAP-xvdb1", :uuid => "d51fcca0-6b10-4934-a572-f3898dfd8840", :type => "swap", :filesystem => "swap"},
43
+ {:device => "/dev/xvda1", :uuid => "f4746f9c-0557-4406-9267-5e918e87ca2e", :type => "ext3", :filesystem => "ext3"},
44
+ {:device => "/dev/xvda2", :uuid => "14d88b9e-9fe6-4974-a8d6-180acdae4016", :type => "ext3", :filesystem => "ext3"}
45
+ ]
46
+
47
+ @platform.volume_manager.parse_volumes(blkid_resp).should == volume_hash_ary
48
+ end
49
+
50
+ it 'raises a parser error when blkid output is malformed' do
51
+ blkid_resp = 'foobarbz'
52
+
53
+ lambda { @platform.volume_manager.parse_volumes(blkid_resp) }.should raise_error(RightScale::Platform::VolumeManager::ParserError)
54
+ end
55
+
56
+ it 'returns an empty list of volumes when blkid output is empty' do
57
+ blkid_resp = ''
58
+
59
+ @platform.volume_manager.parse_volumes(blkid_resp).should == []
60
+ end
61
+
62
+ it 'can filter results with only one condition' do
63
+ blkid_resp = <<EOF
64
+ /dev/xvdh1: SEC_TYPE="msdos" LABEL="METADATA" UUID="681B-8C5D" TYPE="vfat"
65
+ /dev/xvdb1: LABEL="SWAP-xvdb1" UUID="d51fcca0-6b10-4934-a572-f3898dfd8840" TYPE="swap"
66
+ /dev/xvda1: UUID="f4746f9c-0557-4406-9267-5e918e87ca2e" TYPE="ext3"
67
+ /dev/xvda2: UUID="14d88b9e-9fe6-4974-a8d6-180acdae4016" TYPE="ext3"
68
+ EOF
69
+ volume_hash_ary = [
70
+ {:device => "/dev/xvdh1", :sec_type => "msdos", :label => "METADATA", :uuid => "681B-8C5D", :type => "vfat", :filesystem => "vfat"}
71
+ ]
72
+
73
+ condition = {:uuid => "681B-8C5D"}
74
+
75
+ @platform.volume_manager.parse_volumes(blkid_resp, condition).should == volume_hash_ary
76
+ end
77
+
78
+ it 'can filter results with many conditions' do
79
+ blkid_resp = <<EOF
80
+ /dev/xvdh1: SEC_TYPE="msdos" LABEL="METADATA" UUID="681B-8C5D" TYPE="vfat"
81
+ /dev/xvdb1: LABEL="SWAP-xvdb1" UUID="d51fcca0-6b10-4934-a572-f3898dfd8840" TYPE="swap"
82
+ /dev/xvda1: UUID="f4746f9c-0557-4406-9267-5e918e87ca2e" TYPE="ext3"
83
+ /dev/xvda2: UUID="14d88b9e-9fe6-4974-a8d6-180acdae4016" TYPE="ext3"
84
+ EOF
85
+ volume_hash_ary = [
86
+ {:device => "/dev/xvda1", :uuid => "f4746f9c-0557-4406-9267-5e918e87ca2e", :type => "ext3", :filesystem => "ext3"},
87
+ {:device => "/dev/xvda2", :uuid => "14d88b9e-9fe6-4974-a8d6-180acdae4016", :type => "ext3", :filesystem => "ext3"}
88
+ ]
89
+
90
+ condition = {:filesystem => "ext3"}
91
+
92
+ @platform.volume_manager.parse_volumes(blkid_resp, condition).should == volume_hash_ary
93
+ end
94
+ end
95
+
96
+ context :mount_volume do
97
+ it 'mounts the specified volume if it is not already mounted' do
98
+ mount_resp = <<EOF
99
+ /dev/xvda2 on / type ext3 (rw,noatime,errors=remount-ro)
100
+ proc on /proc type proc (rw,noexec,nosuid,nodev)
101
+ EOF
102
+
103
+ mount_popen_mock = flexmock(:read => mount_resp)
104
+ flexmock(IO).should_receive(:popen).with('mount',Proc).once.and_yield(mount_popen_mock)
105
+ flexmock(IO).should_receive(:popen).with('mount -t vfat /dev/xvdh1 /var/spool/softlayer',Proc).once.and_yield(flexmock(:read => ""))
106
+
107
+ @platform.volume_manager.mount_volume({:device => "/dev/xvdh1", :filesystem => "vfat"}, "/var/spool/softlayer")
108
+ end
109
+
110
+ it 'does not attempt to re-mount the volume' do
111
+ mount_resp = <<EOF
112
+ /dev/xvda2 on / type ext3 (rw,noatime,errors=remount-ro)
113
+ proc on /proc type proc (rw,noexec,nosuid,nodev)
114
+ /dev/xvdh1 on /var/spool/softlayer type vfat (rw) [METADATA]
115
+ EOF
116
+
117
+ mount_popen_mock = flexmock(:read => mount_resp)
118
+ flexmock(IO).should_receive(:popen).with('mount',Proc).once.and_yield(mount_popen_mock)
119
+ flexmock(IO).should_receive(:popen).with('mount -t vfat /dev/xvdh1 /var/spool/softlayer',Proc).never.and_yield(flexmock(:read => ""))
120
+
121
+ @platform.volume_manager.mount_volume({:device => "/dev/xvdh1", :filesystem => "vfat"}, "/var/spool/softlayer")
122
+ end
123
+
124
+ it 'raises argument error when the volume parameter is not a hash' do
125
+ lambda { @platform.volume_manager.mount_volume("", "") }.should raise_error(ArgumentError)
126
+ end
127
+
128
+ it 'raises argument error when the volume parameter is a hash but does not contain :device' do
129
+ lambda { @platform.volume_manager.mount_volume({}, "") }.should raise_error(ArgumentError)
130
+ end
131
+
132
+ it 'raises volume error when the device is already mounted to a different mountpoint' do
133
+ mount_resp = <<EOF
134
+ /dev/xvda2 on / type ext3 (rw,noatime,errors=remount-ro)
135
+ proc on /proc type proc (rw,noexec,nosuid,nodev)
136
+ none on /sys type sysfs (rw,noexec,nosuid,nodev)
137
+ none on /sys/kernel/debug type debugfs (rw)
138
+ none on /sys/kernel/security type securityfs (rw)
139
+ none on /dev type devtmpfs (rw,mode=0755)
140
+ none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
141
+ none on /dev/shm type tmpfs (rw,nosuid,nodev)
142
+ none on /var/run type tmpfs (rw,nosuid,mode=0755)
143
+ none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
144
+ none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
145
+ /dev/xvda1 on /boot type ext3 (rw,noatime)
146
+ /dev/xvdh1 on /mnt type vfat (rw) [METADATA]
147
+ EOF
148
+
149
+ mount_popen_mock = flexmock(:read => mount_resp)
150
+ flexmock(IO).should_receive(:popen).with('mount',Proc).and_yield(mount_popen_mock)
151
+
152
+ lambda { @platform.volume_manager.mount_volume({:device => "/dev/xvdh1"}, "/var/spool/softlayer")}.should raise_error(RightScale::Platform::VolumeManager::VolumeError)
153
+ end
154
+
155
+ it 'raises volume error when a different device is already mounted to the specified mountpoint' do
156
+ mount_resp = <<EOF
157
+ /dev/xvda2 on / type ext3 (rw,noatime,errors=remount-ro)
158
+ proc on /proc type proc (rw,noexec,nosuid,nodev)
159
+ none on /sys type sysfs (rw,noexec,nosuid,nodev)
160
+ none on /sys/kernel/debug type debugfs (rw)
161
+ none on /sys/kernel/security type securityfs (rw)
162
+ none on /dev type devtmpfs (rw,mode=0755)
163
+ none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
164
+ none on /dev/shm type tmpfs (rw,nosuid,nodev)
165
+ none on /var/run type tmpfs (rw,nosuid,mode=0755)
166
+ none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
167
+ none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
168
+ /dev/xvda1 on /boot type ext3 (rw,noatime)
169
+ /dev/xvdh2 on /var/spool/softlayer type vfat (rw) [METADATA]
170
+ EOF
171
+
172
+ mount_popen_mock = flexmock(:read => mount_resp)
173
+ flexmock(IO).should_receive(:popen).with('mount',Proc).and_yield(mount_popen_mock)
174
+
175
+ lambda { @platform.volume_manager.mount_volume({:device => "/dev/xvdh1"}, "/var/spool/softlayer")}.should raise_error(RightScale::Platform::VolumeManager::VolumeError)
176
+ end
177
+ end
178
+ end
179
+ end
180
+ end
data/spec/sender_spec.rb CHANGED
@@ -872,6 +872,101 @@ describe RightScale::Sender do
872
872
  @instance.initialize_offline_queue
873
873
  end
874
874
 
875
+ it 'should queue requests prior to offline handler initialization and then flush once started' do
876
+ old_flush_delay = RightScale::Sender::OfflineHandler::MAX_QUEUE_FLUSH_DELAY
877
+ RightScale::Sender.new(@agent)
878
+ @instance = RightScale::Sender.instance
879
+ begin
880
+ RightScale::Sender::OfflineHandler.const_set(:MAX_QUEUE_FLUSH_DELAY, 0.1)
881
+ EM.run do
882
+ @instance.send_push('/dummy', 'payload')
883
+ @instance.offline_handler.offline?.should be_true
884
+ @instance.offline_handler.state.should == :created
885
+ @instance.offline_handler.instance_variable_get(:@queue).size.should == 1
886
+ @instance.initialize_offline_queue
887
+ @broker.should_receive(:publish).once.and_return { EM.stop }
888
+ @instance.start_offline_queue
889
+ EM.add_timer(1) { EM.stop }
890
+ end
891
+ ensure
892
+ RightScale::Sender::OfflineHandler.const_set(:MAX_QUEUE_FLUSH_DELAY, old_flush_delay)
893
+ end
894
+ end
895
+
896
+ it 'should not queue requests prior to offline handler startup if not offline' do
897
+ old_flush_delay = RightScale::Sender::OfflineHandler::MAX_QUEUE_FLUSH_DELAY
898
+ RightScale::Sender.new(@agent)
899
+ @instance = RightScale::Sender.instance
900
+ begin
901
+ RightScale::Sender::OfflineHandler.const_set(:MAX_QUEUE_FLUSH_DELAY, 0.1)
902
+ EM.run do
903
+ @instance.send_push('/dummy', 'payload')
904
+ @instance.offline_handler.offline?.should be_true
905
+ @instance.offline_handler.state.should == :created
906
+ @instance.offline_handler.instance_variable_get(:@queue).size.should == 1
907
+ @instance.initialize_offline_queue
908
+ @broker.should_receive(:publish).with(Hash, on {|arg| arg.type == "/dummy2"}, Hash).once
909
+ @instance.send_push('/dummy2', 'payload')
910
+ @instance.offline_handler.offline?.should be_false
911
+ @instance.offline_handler.mode.should == :initializing
912
+ @instance.offline_handler.state.should == :initializing
913
+ @instance.offline_handler.instance_variable_get(:@queue).size.should == 1
914
+ @instance.offline_handler.instance_variable_get(:@queue).first[:type].should == "/dummy"
915
+ @broker.should_receive(:publish).with(Hash, on {|arg| arg.type == "/dummy"}, Hash).once
916
+ @instance.start_offline_queue
917
+ EM.add_timer(1) do
918
+ @instance.offline_handler.mode.should == :online
919
+ @instance.offline_handler.state.should == :running
920
+ @instance.offline_handler.instance_variable_get(:@queue).size.should == 0
921
+ EM.stop
922
+ end
923
+ end
924
+ ensure
925
+ RightScale::Sender::OfflineHandler.const_set(:MAX_QUEUE_FLUSH_DELAY, old_flush_delay)
926
+ end
927
+ end
928
+
929
+ it 'should queue requests at front if received after offline handler initialization but before startup' do
930
+ old_flush_delay = RightScale::Sender::OfflineHandler::MAX_QUEUE_FLUSH_DELAY
931
+ RightScale::Sender.new(@agent)
932
+ @instance = RightScale::Sender.instance
933
+ begin
934
+ RightScale::Sender::OfflineHandler.const_set(:MAX_QUEUE_FLUSH_DELAY, 0.1)
935
+ EM.run do
936
+ @instance.send_push('/dummy', 'payload')
937
+ @instance.offline_handler.offline?.should be_true
938
+ @instance.offline_handler.state.should == :created
939
+ @instance.offline_handler.instance_variable_get(:@queue).size.should == 1
940
+ @instance.initialize_offline_queue
941
+ @instance.offline_handler.offline?.should be_false
942
+ @instance.offline_handler.mode.should == :initializing
943
+ @instance.offline_handler.state.should == :initializing
944
+ @instance.enable_offline_mode
945
+ @instance.send_push('/dummy2', 'payload')
946
+ @instance.offline_handler.offline?.should be_true
947
+ @instance.offline_handler.mode.should == :offline
948
+ @instance.offline_handler.state.should == :initializing
949
+ @instance.offline_handler.instance_variable_get(:@queue).size.should == 2
950
+ @instance.offline_handler.instance_variable_get(:@queue).first[:type].should == "/dummy2"
951
+ @instance.start_offline_queue
952
+ @instance.offline_handler.mode.should == :offline
953
+ @instance.offline_handler.state.should == :running
954
+ @broker.should_receive(:publish).with(Hash, on {|arg| arg.type == "/dummy2"}, Hash).once
955
+ @broker.should_receive(:publish).with(Hash, on {|arg| arg.type == "/dummy"}, Hash).once
956
+ @instance.disable_offline_mode
957
+ @instance.offline_handler.state.should == :flushing
958
+ EM.add_timer(1) do
959
+ @instance.offline_handler.mode.should == :online
960
+ @instance.offline_handler.state.should == :running
961
+ @instance.offline_handler.instance_variable_get(:@queue).size.should == 0
962
+ EM.stop
963
+ end
964
+ end
965
+ ensure
966
+ RightScale::Sender::OfflineHandler.const_set(:MAX_QUEUE_FLUSH_DELAY, old_flush_delay)
967
+ end
968
+ end
969
+
875
970
  it 'should vote for restart after the maximum number of queued requests is reached' do
876
971
  @instance.offline_handler.instance_variable_get(:@restart_vote_count).should == 0
877
972
  EM.run do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: right_agent
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 3
10
- version: 0.6.3
9
+ - 6
10
+ version: 0.6.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Lee Kirchhoff
@@ -17,11 +17,14 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2011-11-21 00:00:00 -08:00
20
+ date: 2011-12-14 00:00:00 -08:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
24
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ type: :runtime
25
+ name: right_support
26
+ prerelease: false
27
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
28
  none: false
26
29
  requirements:
27
30
  - - ~>
@@ -31,12 +34,12 @@ dependencies:
31
34
  - 1
32
35
  - 0
33
36
  version: "1.0"
34
- name: right_support
35
- prerelease: false
36
- type: :runtime
37
- version_requirements: *id001
37
+ requirement: *id001
38
38
  - !ruby/object:Gem::Dependency
39
- requirement: &id002 !ruby/object:Gem::Requirement
39
+ type: :runtime
40
+ name: amqp
41
+ prerelease: false
42
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
43
  none: false
41
44
  requirements:
42
45
  - - "="
@@ -44,15 +47,15 @@ dependencies:
44
47
  hash: 9
45
48
  segments:
46
49
  - 0
50
+ - 6
47
51
  - 7
48
- - 5
49
- version: 0.7.5
50
- name: amqp
51
- prerelease: false
52
- type: :runtime
53
- version_requirements: *id002
52
+ version: 0.6.7
53
+ requirement: *id002
54
54
  - !ruby/object:Gem::Dependency
55
- requirement: &id003 !ruby/object:Gem::Requirement
55
+ type: :runtime
56
+ name: json
57
+ prerelease: false
58
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
59
  none: false
57
60
  requirements:
58
61
  - - ~>
@@ -62,12 +65,12 @@ dependencies:
62
65
  - 1
63
66
  - 4
64
67
  version: "1.4"
65
- name: json
66
- prerelease: false
67
- type: :runtime
68
- version_requirements: *id003
68
+ requirement: *id003
69
69
  - !ruby/object:Gem::Dependency
70
- requirement: &id004 !ruby/object:Gem::Requirement
70
+ type: :runtime
71
+ name: eventmachine
72
+ prerelease: false
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
71
74
  none: false
72
75
  requirements:
73
76
  - - ~>
@@ -78,12 +81,12 @@ dependencies:
78
81
  - 12
79
82
  - 10
80
83
  version: 0.12.10
81
- name: eventmachine
82
- prerelease: false
83
- type: :runtime
84
- version_requirements: *id004
84
+ requirement: *id004
85
85
  - !ruby/object:Gem::Dependency
86
- requirement: &id005 !ruby/object:Gem::Requirement
86
+ type: :runtime
87
+ name: right_popen
88
+ prerelease: false
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
87
90
  none: false
88
91
  requirements:
89
92
  - - ~>
@@ -94,12 +97,12 @@ dependencies:
94
97
  - 0
95
98
  - 11
96
99
  version: 1.0.11
97
- name: right_popen
98
- prerelease: false
99
- type: :runtime
100
- version_requirements: *id005
100
+ requirement: *id005
101
101
  - !ruby/object:Gem::Dependency
102
- requirement: &id006 !ruby/object:Gem::Requirement
102
+ type: :runtime
103
+ name: msgpack
104
+ prerelease: false
105
+ version_requirements: &id006 !ruby/object:Gem::Requirement
103
106
  none: false
104
107
  requirements:
105
108
  - - "="
@@ -110,10 +113,7 @@ dependencies:
110
113
  - 4
111
114
  - 4
112
115
  version: 0.4.4
113
- name: msgpack
114
- prerelease: false
115
- type: :runtime
116
- version_requirements: *id006
116
+ requirement: *id006
117
117
  description: |
118
118
  RightAgent provides a foundation for running an agent on a server to interface
119
119
  in a secure fashion with other agents in the RightScale system. A RightAgent
@@ -159,6 +159,7 @@ files:
159
159
  - lib/right_agent/core_payload_types/cookbook_repository.rb
160
160
  - lib/right_agent/core_payload_types/cookbook_sequence.rb
161
161
  - lib/right_agent/core_payload_types/dev_repositories.rb
162
+ - lib/right_agent/core_payload_types/dev_repository.rb
162
163
  - lib/right_agent/core_payload_types/event_categories.rb
163
164
  - lib/right_agent/core_payload_types/executable_bundle.rb
164
165
  - lib/right_agent/core_payload_types/login_policy.rb
@@ -243,6 +244,7 @@ files:
243
244
  - spec/command/command_runner_spec.rb
244
245
  - spec/command/command_serializer_spec.rb
245
246
  - spec/core_payload_types/dev_repositories_spec.rb
247
+ - spec/core_payload_types/dev_repository_spec.rb
246
248
  - spec/core_payload_types/executable_bundle_spec.rb
247
249
  - spec/core_payload_types/login_user_spec.rb
248
250
  - spec/core_payload_types/right_script_attachment_spec.rb
@@ -258,6 +260,7 @@ files:
258
260
  - spec/multiplexer_spec.rb
259
261
  - spec/operation_result_spec.rb
260
262
  - spec/packets_spec.rb
263
+ - spec/platform/linux_volume_manager_spec.rb
261
264
  - spec/platform/platform_spec.rb
262
265
  - spec/results_mock.rb
263
266
  - spec/secure_identity_spec.rb