33shared_dir = "SHARED_DIR"
44nvidia_version = "NVIDIA_VERSION"
55nvidia_imex_shared_dir = "#{ shared_dir } /nvidia-imex"
6+ imex_binary = '/usr/bin/nvidia-imex'
7+ imex_ctl_binary = '/usr/bin/nvidia-imex-ctl'
68
79class ConvergeNvidiaImex
810 def self . install ( chef_run )
@@ -64,8 +66,6 @@ def self.install(chef_run)
6466describe 'nvidia_imex:imex_installed' do
6567 for_all_oses do |platform , version |
6668 context "on #{ platform } #{ version } " do
67- imex_binary = '/usr/bin/nvidia-imex'
68- imex_ctl_binary = '/usr/bin/nvidia-imex-ctl'
6969 cached ( :chef_run ) do
7070 runner ( platform : platform , version : version , step_into : [ 'nvidia_imex' ] )
7171 end
@@ -80,8 +80,14 @@ def self.install(chef_run)
8080 allow ( File ) . to receive ( :exist? ) . with ( imex_binary ) . and_return ( false )
8181 end
8282
83- it 'is false' do
84- expect ( resource . imex_installed ) . to eq ( false )
83+ if platform == 'amazon' && version =='2'
84+ it 'is true' do
85+ expect ( resource . imex_installed ) . to eq ( true )
86+ end
87+ else
88+ it 'is false' do
89+ expect ( resource . imex_installed ) . to eq ( false )
90+ end
8591 end
8692 end
8793
@@ -158,7 +164,8 @@ def self.install(chef_run)
158164 cached ( :chef_run ) do
159165 stubs_for_resource ( 'nvidia_imex' ) do |res |
160166 allow ( res ) . to receive ( :nvidia_enabled_or_installed? ) . and_return ( true )
161- allow ( res ) . to receive ( :imex_installed ) . and_return ( false )
167+ allow ( File ) . to receive ( :exist? ) . with ( imex_ctl_binary ) . and_return ( false )
168+ allow ( File ) . to receive ( :exist? ) . with ( imex_binary ) . and_return ( false )
162169 end
163170 runner ( platform : platform , version : version , step_into : [ 'nvidia_imex' ] )
164171 end
@@ -170,29 +177,55 @@ def self.install(chef_run)
170177 ConvergeNvidiaImex . install ( chef_run )
171178 end
172179
173- it 'installs nvidia-imex' do
174- is_expected . to add_nvidia_repo ( 'add nvidia repository' )
175- is_expected . to create_directory ( nvidia_imex_shared_dir )
176-
177- is_expected . to create_template ( "#{ nvidia_imex_shared_dir } /config.cfg" )
178- . with ( source : 'nvidia-imex/nvidia-imex-config.erb' )
179- . with ( user : 'root' )
180- . with ( group : 'root' )
181- . with ( mode : '0755' )
182- is_expected . to create_template ( "#{ nvidia_imex_shared_dir } /nodes_config.cfg" )
183- . with ( source : 'nvidia-imex/nvidia-imex-nodes.erb' )
184- . with ( user : 'root' )
185- . with ( group : 'root' )
186- . with ( mode : '0755' )
187- is_expected . to create_template ( "/etc/systemd/system/nvidia-imex.service" )
188- . with ( source : 'nvidia-imex/nvidia-imex.service.erb' )
189- . with ( user : 'root' )
190- . with ( group : 'root' )
191- . with ( mode : '0644' )
192- is_expected . to install_package ( 'nvidia-imex' )
193- . with ( retries : 3 )
194- . with ( retry_delay : 5 )
195- . with ( version : nvidia_version )
180+ if platform == 'amazon' && version == '2'
181+ it 'does not install nvidia-imex' do
182+ is_expected . not_to add_nvidia_repo ( 'add nvidia repository' )
183+ is_expected . not_to create_directory ( nvidia_imex_shared_dir )
184+ is_expected . not_to create_template ( "#{ nvidia_imex_shared_dir } /config.cfg" )
185+ . with ( source : 'nvidia-imex/nvidia-imex-config.erb' )
186+ . with ( user : 'root' )
187+ . with ( group : 'root' )
188+ . with ( mode : '0755' )
189+ is_expected . not_to create_template ( "#{ nvidia_imex_shared_dir } /nodes_config.cfg" )
190+ . with ( source : 'nvidia-imex/nvidia-imex-nodes.erb' )
191+ . with ( user : 'root' )
192+ . with ( group : 'root' )
193+ . with ( mode : '0755' )
194+ is_expected . not_to create_template ( "/etc/systemd/system/nvidia-imex.service" )
195+ . with ( source : 'nvidia-imex/nvidia-imex.service.erb' )
196+ . with ( user : 'root' )
197+ . with ( group : 'root' )
198+ . with ( mode : '0644' )
199+ is_expected . not_to install_package ( 'nvidia-imex' )
200+ . with ( retries : 3 )
201+ . with ( retry_delay : 5 )
202+ . with ( version : nvidia_version )
203+ end
204+ else
205+ it 'installs nvidia-imex' do
206+ is_expected . to add_nvidia_repo ( 'add nvidia repository' )
207+ is_expected . to create_directory ( nvidia_imex_shared_dir )
208+
209+ is_expected . to create_template ( "#{ nvidia_imex_shared_dir } /config.cfg" )
210+ . with ( source : 'nvidia-imex/nvidia-imex-config.erb' )
211+ . with ( user : 'root' )
212+ . with ( group : 'root' )
213+ . with ( mode : '0755' )
214+ is_expected . to create_template ( "#{ nvidia_imex_shared_dir } /nodes_config.cfg" )
215+ . with ( source : 'nvidia-imex/nvidia-imex-nodes.erb' )
216+ . with ( user : 'root' )
217+ . with ( group : 'root' )
218+ . with ( mode : '0755' )
219+ is_expected . to create_template ( "/etc/systemd/system/nvidia-imex.service" )
220+ . with ( source : 'nvidia-imex/nvidia-imex.service.erb' )
221+ . with ( user : 'root' )
222+ . with ( group : 'root' )
223+ . with ( mode : '0644' )
224+ is_expected . to install_package ( 'nvidia-imex' )
225+ . with ( retries : 3 )
226+ . with ( retry_delay : 5 )
227+ . with ( version : nvidia_version )
228+ end
196229 end
197230 end
198231 end
0 commit comments