Add possibility to use ENV_MANAGER=heat in test pipelines

- If ENV_MANAGER=heat, environment snapshots are unavailable.
  Carefully select the test cases for such environments.
- Added a new job swarm-bootstrap-salt-cluster-heat.groovy
  to create environment in OpenStack
- Added new parameters for parent jobs:
  ENV_MANAGER (default=devops)
  OS_AUTH_URL (for ENV_MANAGER=heat) - Keystone URL
  OS_PROJECT_NAME (for ENV_MANAGER=heat) - OS project name
  OS_USER_DOMAIN_NAME (for ENV_MANAGER=heat) - OS user domain name
  OS_CREDENTIALS (for ENV_MANAGER=heat) - Jenkins credentials
    with username and password to access OpenStack
  LAB_PARAM_DEFAULTS (for ENV_MANAGER=heat) - environment file
    for Heat template with 'parameter_defaults' dict.
- Added requirements 'python-openstackclient' and 'python-glanceclient'
  to operate images and heat stack from Jenkins pipeline scripts.

Related-task: #PROD-27687
Change-Id: I5b3a2fa3aac0bf3d592efa3617e25b8a965f377f
diff --git a/jobs/pipelines/deploy-without-drivetrain-and-run-tests.groovy b/jobs/pipelines/deploy-without-drivetrain-and-run-tests.groovy
index 96ddf76..33f8516 100644
--- a/jobs/pipelines/deploy-without-drivetrain-and-run-tests.groovy
+++ b/jobs/pipelines/deploy-without-drivetrain-and-run-tests.groovy
@@ -49,7 +49,7 @@
 def test(shared, common, steps) {
     try {
         stage("Run tests") {
-            shared.swarm_run_pytest(steps)
+            shared.swarm_run_pytest(steps, "${NODE_NAME}")
         }
 
     } catch (e) {
@@ -93,7 +93,7 @@
             archiveArtifacts artifacts: "**/*.xml,**/*.ini,**/*.log,**/*.tar.gz"
         }
         stage("report results to testrail") {
-            shared.swarm_testrail_report(steps)
+            shared.swarm_testrail_report(steps, "${NODE_NAME}")
         }
         stage("Store TestRail reports to job description") {
             def String description = readFile("description.txt")