Bug 1165719

Summary: oo-accept-node: Gear has a websocket framework cartridge but no websocket configuration
Product: OpenShift Container Platform Reporter: Evgheni Dereveanchin <ederevea>
Component: ContainersAssignee: Jason DeTiberus <jdetiber>
Status: CLOSED ERRATA QA Contact: libra bugs <libra-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 2.1.0CC: anli, bleanhar, cryan, erich, jdetiber, jokerman, libra-onpremise-devel, mmccomas, tiwillia
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://github.com/openshift/origin-server/blob/master/node-util/sbin/oo-accept-node#L696-L738
Whiteboard:
Fixed In Version: openshift-origin-node-util-1.34.0.1-1 Doc Type: Bug Fix
Doc Text:
Cause: If a downloaded cartridge used the same name as a cartridge in the node repository oo-accept-node did not properly validate downloaded cartridges. Consequence: Downloaded cartridges could not be added to jenkins servers if the name matched a cartridge in the repository. Fix: oo-accept-node was updated to inspect the installed cartridge rather than the cartridge from the repository. Result: Downloaded cartridges are now configured properly for jenkins installation.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-12 13:09:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Evgheni Dereveanchin 2014-11-19 14:31:55 UTC
Description of problem:
when a downloadable cartridge with same name as an existing cartridge (python for example) is added to a Jenkins server which does not have protocol ws defined in its manifest.yml, this causes an error

Version-Release number of selected component (if applicable):
2.1

How reproducible:
Always

Steps to Reproduce:
1) Create a Jenkins server application
2) Add http://cartreflect-claytondev.rhcloud.com/reflect?github=gsterjov/openshift-addon-cartridge-python-2.7
3) Launch oo-accept-node


Actual results:
command fails with the following error message: 
Gear has a websocket framework cartridge but no websocket configuration

Expected results:
command succeeds

Additional info:
the script seems to look at the local cartridge manifests on the system and not those with in the gear

Comment 3 Jason DeTiberus 2014-11-27 04:07:27 UTC
https://github.com/openshift/origin-server/pull/5986

Comment 4 openshift-github-bot 2015-01-17 22:54:36 UTC
Commit pushed to master at https://github.com/openshift/origin-server

https://github.com/openshift/origin-server/commit/400a9f4620a84666f4283376833a3cfeb0109c19
Bug 1165719 - oo-accept-node incorrectly using manifests from cart repository

- oo-accept-node should use the manifest from the installed cartridge
  instead of from the cartridge repository, otherwise downloadable
  carts are not verified.

Comment 7 Anping Li 2015-01-26 08:06:17 UTC
Verified and pass on puddle-2-2-2015-01-23

1) modify { websocket: false } in manifest.yml for your download cartridges.
2) create application using this cartridge and add jenkins-client cartridge to this applications.

*) In previous build, it failed to add jenkins cartridge .

[anli@broker ~]$ rhc cartridge add jenkins -a php1
Using jenkins-client-1 (Jenkins Client) for 'jenkins'
Adding jenkins-client-1 to application 'php1' ... 
Could not add job 'php1-build' in Jenkins server:
   create_job status: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /createItem was not found on this server.</p>
<hr>
<address>Apache/2.2.15 (Red Hat) Server at jenkins-anlidom.ose21-20141112.example.com Port 443</address>
</body></html>
404
You'll need to correct this error before attempting to embed the Jenkins client again.
application is not scalable

*) In puddle-2-2-2015-01-23, jenkins-client cartridge was added successfully.

rhc cartridge add jenkins-c -a php1
Using jenkins-client-1 (Jenkins Client) for 'jenkins-c'
Adding jenkins-client-1 to application 'php1' ... done

jenkins-client-1 (Jenkins Client)
---------------------------------
  Gears:   Located with openshiftqe-php-5.3
  Job URL: https://jenkins-anlidom.ose22-app-201501232.com.cn/job/php1-build/

3) run oo-accept-node -v on node.

*)  In previous build, oo-accept-node report error message as below:

oo-accept-node -v
<--- snip --->
INFO: checking system httpd configs
FAIL: Gear has a websocket framework cartridge but no websocket configuration: 54c5f2faa45f8a06350000db
INFO: checking cartridge repository
1 ERRORS

*) In puddle-2-2-2015-01-23, oo-accept-node  pass

oo-accept-node -v
<--- snip --->
INFO: checking filesystem quotas
INFO: checking quota db file selinux label
INFO: checking 2 user accounts
INFO: checking application dirs
INFO: checking system httpd configs
INFO: checking cartridge repository
PASS

Comment 9 errata-xmlrpc 2015-02-12 13:09:32 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://rhn.redhat.com/errata/RHBA-2015-0220.html