Bug 1287414 - Wrong prompt message for oc attach regardless of parameter values
Summary: Wrong prompt message for oc attach regardless of parameter values
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: oc
Version: 3.1.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: ---
Assignee: Fabiano Franz
QA Contact: Wei Sun
URL:
Whiteboard:
Depends On: 1257889
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-12-02 03:04 UTC by Yadan Pei
Modified: 2016-01-26 19:19 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 1257889
Environment:
Last Closed: 2016-01-26 19:19:21 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2016:0070 0 normal SHIPPED_LIVE Important: Red Hat OpenShift Enterprise 3.1.1 bug fix and enhancement update 2016-01-27 00:12:41 UTC

Description Yadan Pei 2015-12-02 03:04:03 UTC
+++ This bug was initially created as a clone of Bug #1257889 +++

Description of problem:
Always show wrong message for oc attach regardless of parameter values

Version-Release number of selected component (if applicable):
oc v1.0.5-71-gb6650dd
kubernetes v1.1.0-alpha.0-1605-g44c91b1

How reproducible:
Always

Steps to Reproduce:
1.Create a project
2.When there is no pod named "123456-7890",check 'oc attach' functionality with only POD parameter carried
$ oc attach 123456-7890
Error from server: pods "123456-7890" not found
3.Check 'oc attach' with more parameter
$ oc attach 123456-7890 date
$ oc attach 123456-7890 -c ruby-container date
4. Create a pod with two containers
$ oc create -f https://raw.githubusercontent.com/openshift-qe/v3-testfiles/master/pods/pod_with_two_containers.json
5. Check pods if it is in running status
$ oc get pods
NAME               READY     STATUS    RESTARTS   AGE
doublecontainers   2/2       Running   0          8m
6. Check oc attach functionality
$ oc attach doublecontainers date
$ oc attach doublecontainers -c hello-openshift date


Actual results:
actual result for step3: 
  error: expected a single argument: POD, saw 2: [123456-7890 date]
  see 'oc attach -h' for help.
actual result for step6:
  error: expected a single argument: POD, saw 2: [doublecontainers date]
  see 'oc attach -h' for help.

Expected results:
Expected result for step3:
  Should promote message indicating "pods "123456-7890" not found"
Expected result for step6:
  Should get date information from first container of pod 'doublecontainers'

Additional info:

--- Additional comment from Fabiano Franz on 2015-11-13 15:33:37 EST ---

The example in 'oc attach' was wrong. This command is not supposed to receive more than one argument (the pod name), since it's not supposed to run commands specified by the user like 'oc exec', but attach to the current process instead. The example was fixed in:

https://github.com/openshift/origin/pull/5898

In case the user provides more than one argument, we must throw the error stating that it only takes one arg, and this validation happens before checking if the pod name is valid or not.

--- Additional comment from  on 2015-11-16 00:25:42 EST ---

Verified on devenv-rhel7_2712

oc v1.1-25-g0c0e452
kubernetes v1.1.0-origin-1107-g4c8e6f4

When there are more than one arguments carried, it gave error info.

# oc attach doublecontainers date whoami
error: expected a single argument: POD, saw 3: [doublecontainers date whoami]
See 'oc attach -h' for help and examples.

# oc attach doublecontainers -c hello-openshift date whoami
error: expected a single argument: POD, saw 3: [doublecontainers date whoami]

# oc attach -h
Attach to a running container

Attach the current shell to a remote container, returning output or setting up a full
terminal session. Can be used to debug containers and invoke interactive commands.

Usage:
  oc attach POD -c CONTAINER [options]

Examples:
  # Get output from running pod 123456-7890, using the first container by default
  $ oc attach 123456-7890

  # Get output from ruby-container from pod 123456-7890
  $ oc attach 123456-7890 -c ruby-container

  # Switch to raw terminal mode, sends stdin to 'bash' in ruby-container from pod 123456-780
  # and sends stdout/stderr from 'bash' back to the client
  $ oc attach 123456-7890 -c ruby-container -i -t

Options:
  -c, --container='': Container name. If omitted, the first container in the pod will be chosen
  -i, --stdin=false: Pass stdin to the container
  -t, --tty=false: Stdin is a TTY

Use "oc options" for a list of global command-line options (applies to all commands).

--- Additional comment from  on 2015-11-16 00:28:30 EST ---

(In reply to Fabiano Franz from comment #1)
> The example in 'oc attach' was wrong. This command is not supposed to
> receive more than one argument (the pod name), since it's not supposed to
> run commands specified by the user like 'oc exec', but attach to the current
> process instead. The example was fixed in:
> 
> https://github.com/openshift/origin/pull/5898
> 
> In case the user provides more than one argument, we must throw the error
> stating that it only takes one arg, and this validation happens before
> checking if the pod name is valid or not.

Just one thing to confirm, since 'oc attach' only attaches to process rather than running commands in container, how -i and-t will be used?

--- Additional comment from Fabiano Franz on 2015-11-19 12:52:28 EST ---

When used with -i -t, the command will also attach stdin to the running process of the remote container. If the remote process is interactive, this will allow you to send keystrokes from stdin and interact with it.

Comment 1 Yadan Pei 2015-12-03 07:14:33 UTC
Will verify once new puddle is available

Comment 2 Yadan Pei 2015-12-03 07:16:17 UTC
On this version of Atomic Enterprise and Openshift Enterprise,
oc v3.1.0.4-16-g112fcc4
kubernetes v1.1.0-origin-1107-g4c8e6f4

it is still not fixed

Comment 3 Yadan Pei 2015-12-08 08:18:28 UTC
bug fixed still not merged to latest puddle in 2015-12-07

Comment 4 Fabiano Franz 2015-12-08 14:32:36 UTC
That's expected, we are not yet doing daily OSE builds since the 3.1 release. We'll get back to doing it most likely later this week.

Comment 5 Yadan Pei 2015-12-09 03:17:56 UTC
Checked on 12-08 puddle,

oc v3.1.0.3-16-gcf75fd9
kubernetes v1.1.0-origin-1107-g4c8e6f4

fixed is merged and works well

Comment 7 errata-xmlrpc 2016-01-26 19:19:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2016:0070


Note You need to log in before you can comment on or make changes to this bug.