Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-38494

User can see the input form on an input step (UI)

    Details

    • Similar Issues:
    • Epic Link:
    • Sprint:
      frank, christmas

      Description

      In Scope

      • Step should show the "waiting for input" indicator.
      • Input form should be shown where the log is usually shown.
      • When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
      • User cannot submit the form unless they have filled in all values.
      • We will need to show a form validation message if the user tries to submit the form with empty values.
      • The confirmation button label is "Continue"
      • The button in the header is "Abort" which aborts the run.
      • See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

      Before vivek left he was able to merge the first tranche of support for input.
      This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

      Creating the following pipeline and calling it "paused"

      node {
          stage("parallelStage"){
            parallel left : {
                  echo "running"
                  def branchInput = input message: 'Please input branch to test against', parameters: [[$class: 'StringParameterDefinition', defaultValue: 'master', description: '', name: 'branch']]
                  echo "BRANCH NAME: ${branchInput}"
              }, 
              right : {
                  sh 'sleep 100000'
              }
          }
      }
      

      Run it - and then go to the following URL:

      http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/

      And you will see:

      {
      "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl",
      "_links": {},
      "actions": [],
      "displayName": "Wait for interactive input",
      "durationInMillis": 124735,
      "id": "12",
      "input": {
      "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
      "_links": {
      "self": {
      "_class": "io.jenkins.blueocean.rest.hal.Link",
      "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/12/input/"
      }
      },
      "id": "C51b52435b43a326d5d4f92c290a64d5",
      "message": "Please input branch to test against",
      "ok": "Proceed",
      "parameters": [
      {
      "_class": "hudson.model.StringParameterDefinition",
      "defaultParameterValue": {
      "_class": "hudson.model.StringParameterValue",
      "name": "branch",
      "value": "master"
      },
      "description": "",
      "name": "branch",
      "type": "StringParameterDefinition"
      }
      ],
      "submitter": null
      },
      "result": "UNKNOWN",
      "startTime": "2016-12-13T15:32:28.343+1100",
      "state": "PAUSED"
      }
      

      We can come up with more canonical examples of all input types once familiar with the api:

      GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/ should report state==PAUSED, result==UNKNOWN
      GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/nodes/ should report state==PAUSED, result==UNKNOWN for nodes parallelStage and right.
      GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/steps/ should report state==PAUSED, result==UNKNOWN for step id 12

      When you drill into a step for a paused node you can see the input required:

      eg:
      http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/

      Has an input value of:

      "input": {
      "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
      "_links": {
      "self": {
      "_class": "io.jenkins.blueocean.rest.hal.Link",
      "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/input/"
      }
      },
      "id": "C51b52435b43a326d5d4f92c290a64d5",
      "message": "Please input branch to test against",
      "ok": "Proceed",
      "parameters": [
      {
      "_class": "hudson.model.StringParameterDefinition",
      "defaultParameterValue": {
      "_class": "hudson.model.StringParameterValue",
      "name": "branch",
      "value": "master"
      },
      "description": "",
      "name": "branch",
      "type": "StringParameterDefinition"
      }
      ],
      "submitter": null
      }
      
      

      which is what the form is rendered from.

        Attachments

          Issue Links

            Activity

            jamesdumay James Dumay created issue -
            jamesdumay James Dumay made changes -
            Field Original Value New Value
            Epic Link JENKINS-38490 [ 174672 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Description In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown.
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            jamesdumay James Dumay made changes -
            Assignee James Dumay [ jamesdumay ]
            jamesdumay James Dumay made changes -
            Sprint next [ 106 ]
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            michaelneale Michael Neale made changes -
            Link This issue is blocked by JENKINS-35795 [ JENKINS-35795 ]
            michaelneale Michael Neale made changes -
            Link This issue is blocked by JENKINS-38491 [ JENKINS-38491 ]
            michaelneale Michael Neale made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            michaelneale Michael Neale made changes -
            Link This issue is blocked by JENKINS-35899 [ JENKINS-35899 ]
            michaelneale Michael Neale made changes -
            Summary User can see the input form on an input step User can see the input form on an input step (UI)
            michaelneale Michael Neale made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            michaelneale Michael Neale made changes -
            Description In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots
            michaelneale Michael Neale made changes -
            Sprint atlantic [ 106 ]
            michaelneale Michael Neale made changes -
            Sprint indian [ 126 ]
            michaelneale Michael Neale made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Sprint indian [ 126 ] arctic [ 131 ]
            jamesdumay James Dumay made changes -
            Sprint arctic [ 131 ] arctic 2 [ 136 ]
            jamesdumay James Dumay made changes -
            Sprint arctic 2 [ 136 ] arctic [ 131 ]
            jamesdumay James Dumay made changes -
            Sprint arctic [ 131 ] arctic 2 [ 136 ]
            jamesdumay James Dumay made changes -
            Sprint tasman [ 136 ] arctic [ 131 ]
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            brody Brody Maclean made changes -
            Attachment Input Form.png [ 34625 ]
            jamesdumay James Dumay made changes -
            Link This issue is blocked by JENKINS-39371 [ JENKINS-39371 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Assignee Thorsten Scherler [ tscherler ]
            jamesdumay James Dumay made changes -
            Sprint arctic [ 131 ]
            jamesdumay James Dumay made changes -
            Sprint tasman [ 136 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Link This issue is blocked by JENKINS-39563 [ JENKINS-39563 ]
            jamesdumay James Dumay made changes -
            Sprint tasman [ 136 ] frank [ 156 ]
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            jamesdumay James Dumay made changes -
            Sprint frank [ 156 ] frank 2 [ 161 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Sprint tethys [ 161 ] frank [ 156 ]
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            michaelneale Michael Neale made changes -
            Description In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots
            In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)
            michaelneale Michael Neale made changes -
            Description In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)
            In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

            michaelneale Michael Neale made changes -
            Description In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

            In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

            Creating the following pipeline and calling it "paused"
            {noformat}
            node {
                stage("parallelStage"){
                  parallel left : {
                        echo "running"
                        def branchInput = input message: 'Please input branch to test against', parameters: [[$class: 'StringParameterDefinition', defaultValue: 'master', description: '', name: 'branch']]
                        echo "BRANCH NAME: ${branchInput}"
                    },
                    right : {
                        sh 'sleep 100000'
                    }
                }
            }
            {noformat}

            Run it - and then go to the following URL:

            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/

            And you will see:


            {noformat}
            {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl",
            "_links": {},
            "actions": [],
            "displayName": "Wait for interactive input",
            "durationInMillis": 124735,
            "id": "12",
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            },
            "result": "UNKNOWN",
            "startTime": "2016-12-13T15:32:28.343+1100",
            "state": "PAUSED"
            }
            {noformat}


            We can come up with more canonical examples of all input types once familiar with the api
            michaelneale Michael Neale made changes -
            Description In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

            Creating the following pipeline and calling it "paused"
            {noformat}
            node {
                stage("parallelStage"){
                  parallel left : {
                        echo "running"
                        def branchInput = input message: 'Please input branch to test against', parameters: [[$class: 'StringParameterDefinition', defaultValue: 'master', description: '', name: 'branch']]
                        echo "BRANCH NAME: ${branchInput}"
                    },
                    right : {
                        sh 'sleep 100000'
                    }
                }
            }
            {noformat}

            Run it - and then go to the following URL:

            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/

            And you will see:


            {noformat}
            {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl",
            "_links": {},
            "actions": [],
            "displayName": "Wait for interactive input",
            "durationInMillis": 124735,
            "id": "12",
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            },
            "result": "UNKNOWN",
            "startTime": "2016-12-13T15:32:28.343+1100",
            "state": "PAUSED"
            }
            {noformat}


            We can come up with more canonical examples of all input types once familiar with the api
            In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

            Creating the following pipeline and calling it "paused"
            {noformat}
            node {
                stage("parallelStage"){
                  parallel left : {
                        echo "running"
                        def branchInput = input message: 'Please input branch to test against', parameters: [[$class: 'StringParameterDefinition', defaultValue: 'master', description: '', name: 'branch']]
                        echo "BRANCH NAME: ${branchInput}"
                    },
                    right : {
                        sh 'sleep 100000'
                    }
                }
            }
            {noformat}

            Run it - and then go to the following URL:

            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/

            And you will see:


            {noformat}
            {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl",
            "_links": {},
            "actions": [],
            "displayName": "Wait for interactive input",
            "durationInMillis": 124735,
            "id": "12",
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            },
            "result": "UNKNOWN",
            "startTime": "2016-12-13T15:32:28.343+1100",
            "state": "PAUSED"
            }
            {noformat}


            We can come up with more canonical examples of all input types once familiar with the api:

            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/ should report state==PAUSED, result==UNKNOWN
            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/nodes/ should report state==PAUSED, result==UNKNOWN for nodes parallelStage and right.
            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/steps/ should report state==PAUSED, result==UNKNOWN for step id 12

            When you drill into a step for a paused node you can see the input required:

            eg:
            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/

            Has an input value of:

            {noformat}
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            }

            {noformat}

            which is what the form is rendered from.


            michaelneale Michael Neale made changes -
            tscherler Thorsten Scherler made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            tscherler Thorsten Scherler made changes -
            jamesdumay James Dumay made changes -
            Attachment Input Form (1).png [ 35193 ]
            jamesdumay James Dumay made changes -
            Attachment Input Form (1).png [ 35193 ]
            jamesdumay James Dumay made changes -
            Attachment Input Form.png [ 35194 ]
            jamesdumay James Dumay made changes -
            Attachment Input Form.png [ 35195 ]
            jamesdumay James Dumay made changes -
            Attachment Input Form.png [ 35194 ]
            jamesdumay James Dumay made changes -
            Description In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

            Creating the following pipeline and calling it "paused"
            {noformat}
            node {
                stage("parallelStage"){
                  parallel left : {
                        echo "running"
                        def branchInput = input message: 'Please input branch to test against', parameters: [[$class: 'StringParameterDefinition', defaultValue: 'master', description: '', name: 'branch']]
                        echo "BRANCH NAME: ${branchInput}"
                    },
                    right : {
                        sh 'sleep 100000'
                    }
                }
            }
            {noformat}

            Run it - and then go to the following URL:

            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/

            And you will see:


            {noformat}
            {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl",
            "_links": {},
            "actions": [],
            "displayName": "Wait for interactive input",
            "durationInMillis": 124735,
            "id": "12",
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            },
            "result": "UNKNOWN",
            "startTime": "2016-12-13T15:32:28.343+1100",
            "state": "PAUSED"
            }
            {noformat}


            We can come up with more canonical examples of all input types once familiar with the api:

            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/ should report state==PAUSED, result==UNKNOWN
            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/nodes/ should report state==PAUSED, result==UNKNOWN for nodes parallelStage and right.
            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/steps/ should report state==PAUSED, result==UNKNOWN for step id 12

            When you drill into a step for a paused node you can see the input required:

            eg:
            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/

            Has an input value of:

            {noformat}
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            }

            {noformat}

            which is what the form is rendered from.


            In Scope
            * Step should show the "waiting for input" indicator.
            * Input form should be shown where the log is usually shown.
            * When the user clicks "Submit" the form disappears and the log for that step is shown (Note: progress via karaoke should resume at this point)
            * User cannot submit the form unless they have filled in all values.
            * We will need to show a form validation message if the user tries to submit the form with empty values.
            * The confirmation button label is "Continue"
            * The button in the header is "Abort" which aborts the run.
            * See https://issues.jenkins-ci.org/browse/JENKINS-35899 for details on the visual design of this and screen shots

            Before vivek left he was able to merge the first tranche of support for input.
            This is described in this closed PR here: https://github.com/jenkinsci/blueocean-plugin/pull/645 (with a sample pipeline, that will return states waiting for input)

            Creating the following pipeline and calling it "paused"
            {noformat}
            node {
                stage("parallelStage"){
                  parallel left : {
                        echo "running"
                        def branchInput = input message: 'Please input branch to test against', parameters: [[$class: 'StringParameterDefinition', defaultValue: 'master', description: '', name: 'branch']]
                        echo "BRANCH NAME: ${branchInput}"
                    },
                    right : {
                        sh 'sleep 100000'
                    }
                }
            }
            {noformat}

            Run it - and then go to the following URL:

            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/

            And you will see:


            {noformat}
            {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl",
            "_links": {},
            "actions": [],
            "displayName": "Wait for interactive input",
            "durationInMillis": 124735,
            "id": "12",
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            },
            "result": "UNKNOWN",
            "startTime": "2016-12-13T15:32:28.343+1100",
            "state": "PAUSED"
            }
            {noformat}


            We can come up with more canonical examples of all input types once familiar with the api:

            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/ should report state==PAUSED, result==UNKNOWN
            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/nodes/ should report state==PAUSED, result==UNKNOWN for nodes parallelStage and right.
            GET /jenkins/blue/rest/organizations/jenkins/pipelines/pipeline1/runs/1/steps/ should report state==PAUSED, result==UNKNOWN for step id 12

            When you drill into a step for a paused node you can see the input required:

            eg:
            http://localhost:8080/jenkins/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/

            Has an input value of:

            {noformat}
            "input": {
            "_class": "io.jenkins.blueocean.rest.impl.pipeline.InputStepImpl",
            "_links": {
            "self": {
            "_class": "io.jenkins.blueocean.rest.hal.Link",
            "href": "/blue/rest/organizations/jenkins/pipelines/paused/runs/1/nodes/6/steps/12/input/"
            }
            },
            "id": "C51b52435b43a326d5d4f92c290a64d5",
            "message": "Please input branch to test against",
            "ok": "Proceed",
            "parameters": [
            {
            "_class": "hudson.model.StringParameterDefinition",
            "defaultParameterValue": {
            "_class": "hudson.model.StringParameterValue",
            "name": "branch",
            "value": "master"
            },
            "description": "",
            "name": "branch",
            "type": "StringParameterDefinition"
            }
            ],
            "submitter": null
            }

            {noformat}

            which is what the form is rendered from.


            brody Brody Maclean made changes -
            Attachment screenshot-1.png [ 35227 ]
            jamesdumay James Dumay made changes -
            Link This issue is duplicated by JENKINS-39395 [ JENKINS-39395 ]
            jamesdumay James Dumay made changes -
            Link This issue duplicates JENKINS-36855 [ JENKINS-36855 ]
            jamesdumay James Dumay made changes -
            Link This issue duplicates JENKINS-36855 [ JENKINS-36855 ]
            jamesdumay James Dumay made changes -
            Link This issue is duplicated by JENKINS-36855 [ JENKINS-36855 ]
            jamesdumay James Dumay made changes -
            Link This issue is duplicated by JENKINS-36855 [ JENKINS-36855 ]
            jamesdumay James Dumay made changes -
            Labels adoption
            jamesdumay James Dumay made changes -
            Link This issue is blocked by JENKINS-40587 [ JENKINS-40587 ]
            jamesdumay James Dumay made changes -
            Sprint frank [ 156 ] frank, christmas [ 156, 176 ]
            tscherler Thorsten Scherler made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            tscherler Thorsten Scherler made changes -
            Status In Review [ 10005 ] Resolved [ 5 ]
            Resolution Fixed [ 1 ]

              People

              • Assignee:
                tscherler Thorsten Scherler
                Reporter:
                jamesdumay James Dumay
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: