diff --git a/jenkins_jobs/modules/parameters.py b/jenkins_jobs/modules/parameters.py
index 957320614..49d8cd0b7 100644
--- a/jenkins_jobs/modules/parameters.py
+++ b/jenkins_jobs/modules/parameters.py
@@ -191,19 +191,49 @@ def label_param(registry, xml_parent, data):
     :arg str name: the name of the parameter
     :arg str default: the default value of the parameter (optional)
     :arg str description: a description of the parameter (optional)
+    :arg str matching-label: to run all nodes matching label
+        'success', 'unstable' or 'allCases' (optional)
+    :arg str node-eligibility: all nodes, ignore temporary nodes or
+        ignore temporary offline nodes (optional, default all nodes)
 
-    Example::
+    Example:
+
+    .. literalinclude::  /../../tests/parameters/fixtures/node-label001.yaml
+       :language: yaml
 
-      parameters:
-        - label:
-            name: node
-            default: precise
-            description: "The node on which to run the job"
     """
-    base_param(registry, xml_parent, data, True,
+
+    pdef = base_param(registry, xml_parent, data, True,
                'org.jvnet.jenkins.plugins.nodelabelparameter.'
                'LabelParameterDefinition')
 
+    XML.SubElement(pdef, 'allNodesMatchingLabel').text = "true"
+
+    valid_types = ['allCases', 'success', 'unstable']
+    mapping = [
+        ('matching-label', 'triggerIfResult', 'allCases', valid_types)
+    ]
+    convert_mapping_to_xml(pdef, data, mapping, fail_required=True)
+
+    eligibility_label = data.get('node-eligibility', 'all').lower()
+    eligibility_label_dict = {
+        'all': 'org.jvnet.jenkins.plugins.'
+               'nodelabelparameter.node.'
+               'AllNodeEligibility',
+        'ignore-offline': 'org.jvnet.jenkins.plugins.'
+                          'nodelabelparameter.node.'
+                          'IgnoreOfflineNodeEligibility',
+        'ignore-temp-offline': 'org.jvnet.jenkins.plugins.'
+                               'nodelabelparameter.node.'
+                               'IgnoreTempOfflineNodeEligibility',
+    }
+    if eligibility_label not in eligibility_label_dict:
+        raise InvalidAttributeError(eligibility_label, eligibility_label,
+                                    eligibility_label_dict.keys())
+
+    XML.SubElement(pdef, 'nodeEligibility').set(
+        "class", eligibility_label_dict[eligibility_label])
+
 
 def node_param(registry, xml_parent, data):
     """yaml: node
diff --git a/tests/parameters/fixtures/node-label001.xml b/tests/parameters/fixtures/node-label001.xml
new file mode 100644
index 000000000..9157ccc6b
--- /dev/null
+++ b/tests/parameters/fixtures/node-label001.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+  <properties>
+    <hudson.model.ParametersDefinitionProperty>
+      <parameterDefinitions>
+        <org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+          <name>EXAMPLE LABEL 1</name>
+          <description>EXAMPLE LABEL DESCRIPTION 1</description>
+          <defaultValue/>
+          <allNodesMatchingLabel>true</allNodesMatchingLabel>
+          <triggerIfResult>success</triggerIfResult>
+          <nodeEligibility class="org.jvnet.jenkins.plugins.nodelabelparameter.node.AllNodeEligibility"/>
+        </org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+      </parameterDefinitions>
+    </hudson.model.ParametersDefinitionProperty>
+  </properties>
+</project>
diff --git a/tests/parameters/fixtures/node-label001.yaml b/tests/parameters/fixtures/node-label001.yaml
new file mode 100644
index 000000000..3028d1a4d
--- /dev/null
+++ b/tests/parameters/fixtures/node-label001.yaml
@@ -0,0 +1,6 @@
+parameters:
+  - label:
+      name: EXAMPLE LABEL 1
+      description: "EXAMPLE LABEL DESCRIPTION 1"
+      matching-label: "success"
+      node-eligibility: "all"
\ No newline at end of file
diff --git a/tests/parameters/fixtures/node-label002.xml b/tests/parameters/fixtures/node-label002.xml
new file mode 100644
index 000000000..4416dc8e1
--- /dev/null
+++ b/tests/parameters/fixtures/node-label002.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+  <properties>
+    <hudson.model.ParametersDefinitionProperty>
+      <parameterDefinitions>
+        <org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+          <name>EXAMPLE LABEL 2</name>
+          <description>EXAMPLE LABEL DESCRIPTION 2</description>
+          <defaultValue/>
+          <allNodesMatchingLabel>true</allNodesMatchingLabel>
+          <triggerIfResult>unstable</triggerIfResult>
+          <nodeEligibility class="org.jvnet.jenkins.plugins.nodelabelparameter.node.IgnoreOfflineNodeEligibility"/>
+        </org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+      </parameterDefinitions>
+    </hudson.model.ParametersDefinitionProperty>
+  </properties>
+</project>
diff --git a/tests/parameters/fixtures/node-label002.yaml b/tests/parameters/fixtures/node-label002.yaml
new file mode 100644
index 000000000..4b61f8f31
--- /dev/null
+++ b/tests/parameters/fixtures/node-label002.yaml
@@ -0,0 +1,6 @@
+parameters:
+  - label:
+      name: EXAMPLE LABEL 2
+      description: "EXAMPLE LABEL DESCRIPTION 2"
+      matching-label: "unstable"
+      node-eligibility: "ignore-offline"
\ No newline at end of file
diff --git a/tests/parameters/fixtures/node-label003.xml b/tests/parameters/fixtures/node-label003.xml
new file mode 100644
index 000000000..9a2b493df
--- /dev/null
+++ b/tests/parameters/fixtures/node-label003.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+  <properties>
+    <hudson.model.ParametersDefinitionProperty>
+      <parameterDefinitions>
+        <org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+          <name>EXAMPLE LABEL 3</name>
+          <description>EXAMPLE LABEL DESCRIPTION 3</description>
+          <defaultValue/>
+          <allNodesMatchingLabel>true</allNodesMatchingLabel>
+          <triggerIfResult>allCases</triggerIfResult>
+          <nodeEligibility class="org.jvnet.jenkins.plugins.nodelabelparameter.node.IgnoreTempOfflineNodeEligibility"/>
+        </org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+      </parameterDefinitions>
+    </hudson.model.ParametersDefinitionProperty>
+  </properties>
+</project>
diff --git a/tests/parameters/fixtures/node-label003.yaml b/tests/parameters/fixtures/node-label003.yaml
new file mode 100644
index 000000000..93d6f4c92
--- /dev/null
+++ b/tests/parameters/fixtures/node-label003.yaml
@@ -0,0 +1,6 @@
+parameters:
+  - label:
+      name: EXAMPLE LABEL 3
+      description: "EXAMPLE LABEL DESCRIPTION 3"
+      matching-label: "allCases"
+      node-eligibility: "ignore-temp-offline"
\ No newline at end of file
diff --git a/tests/parameters/fixtures/node-label004.xml b/tests/parameters/fixtures/node-label004.xml
new file mode 100644
index 000000000..788e27422
--- /dev/null
+++ b/tests/parameters/fixtures/node-label004.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+  <properties>
+    <hudson.model.ParametersDefinitionProperty>
+      <parameterDefinitions>
+        <org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+          <name>EXAMPLE LABEL 4</name>
+          <description>EXAMPLE LABEL DESCRIPTION 4</description>
+          <defaultValue/>
+          <allNodesMatchingLabel>true</allNodesMatchingLabel>
+          <triggerIfResult>allCases</triggerIfResult>
+          <nodeEligibility class="org.jvnet.jenkins.plugins.nodelabelparameter.node.AllNodeEligibility"/>
+        </org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition>
+      </parameterDefinitions>
+    </hudson.model.ParametersDefinitionProperty>
+  </properties>
+</project>
diff --git a/tests/parameters/fixtures/node-label004.yaml b/tests/parameters/fixtures/node-label004.yaml
new file mode 100644
index 000000000..f6610b664
--- /dev/null
+++ b/tests/parameters/fixtures/node-label004.yaml
@@ -0,0 +1,4 @@
+parameters:
+  - label:
+      name: EXAMPLE LABEL 4
+      description: "EXAMPLE LABEL DESCRIPTION 4"