17750: Centos 7 needs rvm for api and workbench
[arvados-formula.git] / arvados / api / package / install.sls
index 5c48f0c597ee7b5f102692fdb2aa33034de4ff3e..ce0004e676807d68a68e9ff5c182befb90e48176 100644 (file)
@@ -1,37 +1,49 @@
 # -*- coding: utf-8 -*-
 # vim: ft=sls
 
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
 {#- Get the `tplroot` from `tpldir` #}
 {%- set tplroot = tpldir.split('/')[0] %}
 {%- set sls_config_file = tplroot ~ '.config.file' %}
+{%- set sls_ruby_install = tplroot ~ '.ruby.package.install' %}
 {%- from tplroot ~ "/map.jinja" import arvados with context %}
 
-# The API server requires a valid config BEFORE installing...
+{%- if arvados.ruby.manage_ruby %}
+  {%- set ruby_dep = 'rvm' if arvados.ruby.use_rvm else 'pkg' %}
+{%- endif %}
+
 include:
+  # The API server requires a valid config BEFORE installing...
   - {{ sls_config_file }}
-
-arvados-api-package-install-ruby-pkg-installed:
-  pkg.installed:
-    - name: {{ arvados.ruby.pkg }}
-    - only_if: {{ arvados.ruby.manage_ruby }}
+  - {{ sls_ruby_install }}
 
 arvados-api-package-install-gems-deps-pkg-installed:
   pkg.installed:
-    - pkgs: {{ arvados.ruby.gems_deps | json }}
-    - only_if: {{ arvados.ruby.manage_gems_deps }}
+    - pkgs: {{ arvados.ruby.gems_deps | unique | json }}
+    - onlyif: test "{{ arvados.ruby.manage_gems_deps | lower }}" = "true"
 
-{% for gm in arvados.api.gem.name %}
+{%- for gm in arvados.api.gem.name | unique %}
 arvados-api-package-install-gem-{{ gm }}-installed:
   gem.installed:
     - name: {{ gm }}
+    {%- if arvados.ruby.use_rvm %}
+    - ruby: {{ arvados.ruby.pkg }}
+    {%- endif %}
     - require:
       - pkg: arvados-api-package-install-gems-deps-pkg-installed
+      {%- if arvados.ruby.manage_ruby %}
+      - {{ ruby_dep }}: arvados-ruby-package-install-ruby-{{ ruby_dep }}-installed
+      {%- endif %}
     - require_in:
       - pkg: arvados-api-package-install-pkg-installed
-{% endfor %}
+{%- endfor %}
 
 arvados-api-package-install-pkg-installed:
   pkg.installed:
-    - pkgs: {{ arvados.api.pkg.name | json }}
+    - name: {{ arvados.api.pkg.name }}
+    - version: {{ arvados.version }}
     - require:
       - sls: {{ sls_config_file }}