Bug 1034356 - Need to remove jenkins_shell_command from primary cartridge dir in gears if the primary cartridge no longer has a custom jenkins_shell_command
Summary: Need to remove jenkins_shell_command from primary cartridge dir in gears if t...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Cluster Version Operator
Version: 2.0.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Brenton Leanhardt
QA Contact: libra bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-11-25 16:47 UTC by Andy Goldstein
Modified: 2017-03-08 17:35 UTC (History)
4 users (show)

Fixed In Version: openshift-origin-cartridge-ruby-1.17.4-1, openshift-origin-cartridge-php-1.17.3.2-1, openshift-origin-cartridge-perl-1.16.5-1,openshift-origin-cartridge-jbossews-1.17.2-1,openshift-origin-cartridge-jbosseap-2.11.1.2-1
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-01-17 16:20:42 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Andy Goldstein 2013-11-25 16:47:14 UTC
If an application was created in OSE 1.2 and it had jenkins-client added, the gear most likely ended up with a copy of jenkins_shell_command in e.g. ~/php/metadata/jenkins_shell_command. This is because most web framework cartridges in OSE 1.2 have their own copy of jenkins_shell_command that is specific to that cartridge. With OSE 2.0, the custom jenkins_shell_command has been removed from web framework cartridges and only a couple of them have a custom one at this time.

When upgrading a 1.2 app to 2.0, the gear's jenkins_shell_command should be removed as long as the web framework cartridge doesn't still have a custom version of that file. This is because the jenkins-client cartridge will use the gear's primary cartridge's jenkins_shell_command when creating the job in jenkins, if it exists. This wouldn't be correct, as the custom jenkins_shell_command is a remnant from the previous version of the cartridge, and must be deleted. If not, even if the user deletes jenkins-client from the application and re-adds it, it will still create the job using the previous version of jenkins_shell_command, and it won't be able to take advantage of the latest build/deployment features appropriately.

See https://bugzilla.redhat.com/show_bug.cgi?id=1033581 for more details.

Comment 3 Johnny Liu 2014-01-09 15:59:56 UTC
Following http://etherpad.corp.redhat.com/ose-2-0-upgrade-2014-01-07, and replace puddle using 2.0.z/2014-01-08.1, verification is PASS.

Create app in ose-1.2, go to /var/lib/openshift/
# find .|grep jenkins_shell_command
./5298181af16d95099e0002dc/jbossews/metadata/jenkins_shell_command
./.cartridge_repository/redhat-python/0.0.1/versions/2.7/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-python/0.0.1/versions/3.3/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-python/0.0.1/versions/2.6/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-jbossews/0.0.1/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-perl/0.0.1/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-ruby/0.0.2/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-php/0.0.2/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-jenkins-client/0.0.1/metadata/jenkins_shell_command
./.cartridge_repository/redhat-jbosseap/0.0.1/metadata/jenkins_shell_command.erb
./52982b9ef16d95099e000347/jbosseap/metadata/jenkins_shell_command
./52980c45f16d95099e000100/jbossews/metadata/jenkins_shell_command
./52980a8cf16d95099e0000c1/php/metadata/jenkins_shell_command
./52ceab78f16d956a1f000010/perl/metadata/jenkins_shell_command
./52980b24f16d95099e0000e4/ruby/metadata/jenkins_shell_command
./5298071af16d95099e00008d/ruby/metadata/jenkins_shell_command
./5298050df16d95099e000052/python/versions/2.7/metadata/jenkins_shell_command
./5298050df16d95099e000052/python/versions/3.3/metadata/jenkins_shell_command
./5298050df16d95099e000052/python/versions/2.6/metadata/jenkins_shell_command
./52981526f16d95099e00023d/php/metadata/jenkins_shell_command
./52981043f16d95099e000172/jbosseap/metadata/jenkins_shell_command
./529811a3f16d95099e0001a7/perl/metadata/jenkins_shell_command
./52980e3ff16d95099e000138/jbosseap/metadata/jenkins_shell_command
./52980d3cf16d95099e00011c/jbossews/metadata/jenkins_shell_command
./529816d1f16d95099e0002a7/ruby/metadata/jenkins_shell_command
./5298162df16d95099e000272/python/versions/2.7/metadata/jenkins_shell_command
./5298162df16d95099e000272/python/versions/3.3/metadata/jenkins_shell_command
./5298162df16d95099e000272/python/versions/2.6/metadata/jenkins_shell_command
./529812ecf16d95099e0001fb/ruby/metadata/jenkins_shell_command
./52981937f16d95099e000311/jbossews/metadata/jenkins_shell_command
./52982bf6f16d95bcfa00000f/perl/metadata/jenkins_shell_command


Then upgrade env to 2.0, check again:
# find .|grep jenkins_shell_command
./5298181af16d95099e0002dc/jenkins-client/metadata/jenkins_shell_command
./.cartridge_repository/redhat-python/0.0.8/usr/versions/2.7/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-python/0.0.8/usr/versions/2.6/metadata/jenkins_shell_command.erb
./.cartridge_repository/redhat-jenkins-client/0.0.5/metadata/jenkins_shell_command
./52980a8cf16d95099e0000c1/jenkins-client/metadata/jenkins_shell_command
./52ceab78f16d956a1f000010/jenkins-client/metadata/jenkins_shell_command
./5298050df16d95099e000052/python/versions/2.7/metadata/jenkins_shell_command
./5298050df16d95099e000052/python/versions/3.3/metadata/jenkins_shell_command
./5298050df16d95099e000052/python/versions/2.6/metadata/jenkins_shell_command
./5298050df16d95099e000052/python/metadata/jenkins_shell_command
./52980e3ff16d95099e000138/jenkins-client/metadata/jenkins_shell_command
./529816d1f16d95099e0002a7/jenkins-client/metadata/jenkins_shell_command
./5298162df16d95099e000272/python/versions/2.7/metadata/jenkins_shell_command
./5298162df16d95099e000272/python/versions/3.3/metadata/jenkins_shell_command
./5298162df16d95099e000272/python/versions/2.6/metadata/jenkins_shell_command
./5298162df16d95099e000272/python/metadata/jenkins_shell_command


~/<cartridge>/metadata/jenkins_shell_command is already removed, and add jenkins-client to app, add hot_deploy marker to app, then trigger jenkins build, hot deploy is working well. Here I tested php, perl jbosseap, scalable jbossews and scalable ruby-1.9 cartrige.

So verification is PASS.


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