Merge "[wf]Initial Changes for "together" extend"
diff --git a/src/com/mirantis/mk/Ruby.groovy b/src/com/mirantis/mk/Ruby.groovy
index 2e1e494..0af5deb 100644
--- a/src/com/mirantis/mk/Ruby.groovy
+++ b/src/com/mirantis/mk/Ruby.groovy
@@ -8,11 +8,15 @@
  * Ensures Ruby environment with given version (install it if necessary)
  * @param rubyVersion target ruby version (optional, default 2.6.6)
  */
-def ensureRubyEnv(rubyVersion="2.6.6"){
-    if (!fileExists("/var/lib/jenkins/.rbenv/versions/${rubyVersion}/bin/ruby")){
-        //XXX: patch ruby-build because debian package is quite old
-        sh "git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build || git -C ~/.rbenv/plugins/ruby-build pull origin master"
-        sh "rbenv install ${rubyVersion} -sv";
+def ensureRubyEnv(rubyVersion="2.6.6", host_to_lock=""){
+    def lock_name = "install_ruby_system_${host_to_lock}"
+    lock(lock_name) {
+        if (!fileExists("/var/lib/jenkins/.rbenv/versions/${rubyVersion}/bin/ruby")){
+            //XXX: patch ruby-build because debian package is quite old
+            sh "rm -rf ~/.rbenv/plugins/ruby-build"
+            sh "git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build"
+            sh "rbenv install ${rubyVersion} -sv";
+        }
     }
     sh "rbenv local ${rubyVersion};rbenv exec gem update --system"
 }