feat(resources): add state to register virtual_machines
[arvados-formula.git] / test / integration / shell / controls / config_spec.rb
index 9fa65b7af63d9084985647f0841d13451c4e690e..0ada81cdcb7dfbe0101c2a90ac76765410702831 100644 (file)
@@ -1,49 +1,69 @@
 # frozen_string_literal: true
 
-siab_stanza = <<~SIAB_STANZA
-  SHELLINABOX_PORT=4200
-  # SSL is disabled because it is terminated in Nginx. Adjust as needed.
-  SHELLINABOX_ARGS="--disable-ssl --no-beep --service=/shell.fixme.example.net:AUTH:HOME:SHELL"
-SIAB_STANZA
+control 'arvados configuration file' do
+  title 'should not exist'
 
-libpam_stanza = <<~LIBPAM_STANZA
-  auth [success=1 default=ignore] /usr/lib/pam_arvados.so fixme.example.net shell.fixme.example.net
-LIBPAM_STANZA
+  describe file('/etc/arvados/config.yml') do
+    it { should_not exist }
+  end
+end
 
 control 'shellinabox configuration' do
   title 'should match desired lines'
 
-  describe file('/etc/default/shellinabox') do
+  case os[:name]
+  when 'centos'
+    file = '/etc/sysconfig/shellinaboxd'
+    tpl = 'RedHat'
+    siab_stanza = <<~SIAB_STANZA
+      PORT=4200
+      # SSL is disabled because it is terminated in Nginx. Adjust as needed.
+      OPTS="--disable-ssl --no-beep --service=/shell.fixme.example.net:SSH"
+    SIAB_STANZA
+  when 'debian', 'ubuntu'
+    file = '/etc/default/shellinabox'
+    tpl = 'default'
+    siab_stanza = <<~SIAB_STANZA
+      SHELLINABOX_PORT=4200
+      # SSL is disabled because it is terminated in Nginx. Adjust as needed.
+      SHELLINABOX_ARGS="--disable-ssl --no-beep --service=/shell.fixme.example.net:AUTH:HOME:SHELL"
+    SIAB_STANZA
+  end
+  describe file(file) do
     it { should be_file }
     it { should be_owned_by 'root' }
     it { should be_grouped_into 'root' }
     its('mode') { should cmp '0644' }
     its('content') do
       should include(
-        # rubocop:disable Metrics/LineLength
-        'File managed by Salt at <salt://arvados/shell/config/files/default/shell-shellinabox.tmpl.jinja>.'
-        # rubocop:enable Metrics/LineLength
+        # rubocop:disable Layout/LineLength
+        "File managed by Salt at <salt://arvados/shell/config/files/#{tpl}/shell-shellinabox.tmpl.jinja>."
+        # rubocop:enable Layout/LineLength
       )
     end
     its('content') { should include(siab_stanza) }
   end
 end
 
-control 'libpam-arvados configuration' do
+control 'pam-shellinabox-arvados configuration' do
   title 'should match desired lines'
 
-  describe file('/etc/pam.d/arvados') do
+  pamshellinabox_stanza = <<~PAMSHELLINABOX_STANZA
+    auth [success=1 default=ignore] /usr/lib/pam_arvados.so fixme.example.net shell.fixme.example.net
+  PAMSHELLINABOX_STANZA
+
+  describe file('/etc/pam.d/shellinabox') do
     it { should be_file }
     it { should be_owned_by 'root' }
     it { should be_grouped_into 'root' }
     its('mode') { should cmp '0644' }
     its('content') do
       should include(
-        # rubocop:disable Metrics/LineLength
-        'File managed by Salt at <salt://arvados/shell/config/files/default/shell-libpam-arvados.tmpl.jinja>.'
-        # rubocop:enable Metrics/LineLength
+        # rubocop:disable Layout/LineLength
+        'File managed by Salt at <salt://arvados/shell/config/files/default/shell-pam-shellinabox.tmpl.jinja>.'
+        # rubocop:enable Layout/LineLength
       )
     end
-    its('content') { should include(libpam_stanza) }
+    its('content') { should include(pamshellinabox_stanza) }
   end
 end