Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1060235 - oo-install fails on yum command in install_cartridges because $install_pkgs is empty
Summary: oo-install fails on yum command in install_cartridges because $install_pkgs i...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer
Version: 2.0.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Luke Meyer
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-01-31 14:27 UTC by Miciah Dashiel Butler Masters
Modified: 2018-12-04 17:16 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-02-06 20:59:01 UTC


Attachments (Terms of Use)

Description Miciah Dashiel Butler Masters 2014-01-31 14:27:42 UTC
Description of problem:

This description comes from https://github.com/openshift/openshift-extras/pull/283:

    oo-intsall script was failing, here is snip from openshift-deploy.log -
    
    ==========================================
    + install_cartridges
    + echo
    
    + yum_install_or_exit ''
    + echo 'OpenShift: yum install '
    OpenShift: yum install 
    + yum install -y --disableplugin=rhnplugin
    ==========================================
    
    here we can see that no packages passed to yum install while cartridge installation.

...

    In install_cartridges() function $install_pkgs was blank. yum install was failing due to no packages passed to install. 

    Calling parse_cartridges in install_cartridges function solved the issue.


The problem is that I changed openshift.sh to run the parse_cartridges action before running the configure_repos and install_pkgs actions.  What we should do (and what I should have done) is also update oo-install, which specifies which actions to run.

Comment 1 Miciah Dashiel Butler Masters 2014-01-31 14:35:02 UTC
PR: https://github.com/openshift/openshift-extras/pull/284

Comment 3 Luke Meyer 2014-01-31 17:33:04 UTC
I haven't looked into this at all yet. But if possible, I would not like to have parse_cartridges as a top-level action. It should be run from an existing action so that oo-install doesn't need to be aware of it. Is there really ever a good reason to do this as an action independently from the others? If so, then it makes sense to call it out separately... otherwise not.

Comment 4 Miciah Dashiel Butler Masters 2014-01-31 17:38:14 UTC
parse_cartridges needs to run before configure_repos because parse_cartridges sets CONF_NO_JBOSSEAP and CONF_NO_JBOSSEWS.  We could make configure_repos invoke parse_cartridges.  I didn't do that because it seemed like doing so would be weird and arbitrary, but we can take that approach if you prefer it.  Invoking parse_cartridges from validate_preflight or init_message would definitely be weird.

Comment 5 Luke Meyer 2014-01-31 18:25:50 UTC
I would prefer that approach. Actually, I would prefer it ran in set_defaults so the things it sets are always available. (Maybe we should call it something else... "determine_configuration"?)

The reason is that oo-install runs the top-level actions in separate invocations. The top-level actions shouldn't assume previous actions ran in the same invocation.

And I should probably have a warning in do_all_actions not to add any more in there without taking oo-install into consideration, that the top-level actions should work relatively independently (i.e. should make sense if invoked individually, not statefully depend on the previous steps having executed in this run-through).

Comment 6 John Wiebalk 2014-02-03 13:05:32 UTC
I am also hitting this issue. I can manually run openshift.sh out of /tmp with the node flag and it runs fine but through oo-install it fails:

OpenShift: yum install rubygem-openshift-origin-node ruby193-rubygem-passenger-native openshift-origin-node-util ruby193-mcollective openshift-origin-msg-node-mcollective policycoreutils-python rubygem-openshift-origin-container-selinux rubygem-openshift-origin-frontend-nodejs-websocket rubygem-openshift-origin-frontend-apache-mod-rewrite
OpenShift: yum install
OpenShift: Command failed: yum install
OpenShift: Please ensure relevant repos/subscriptions are configured.
OpenShift: Aborting Installation.

Comment 7 Luke Meyer 2014-02-03 22:16:55 UTC
Proposing https://github.com/openshift/openshift-extras/pull/288 as the fix... oo-install shouldn't need awareness of parse_cartridges.

Comment 10 Luke Meyer 2014-02-04 14:22:12 UTC
Test procedure when oo-install is involved:

1. git clone https://github.com/sosiouxme/openshift-extras.git
   # or whichever repo the PR is from
2. cd openshift-extras
3. git checkout installer-parse_cartridges-placement
   # or whichever branch the PR is from
4. cd oo-install
5. bundle install
6. bundle exec oo-install -e

Ideally we would test on ruby 1.8, 1.9, 2.0 ...

Comment 13 Luke Meyer 2014-02-06 19:18:45 UTC
Code merged, just need to publish new oo-install.

Comment 14 Luke Meyer 2014-02-06 20:59:01 UTC
oo-install published... please try it out. Reopen if the problem persists.


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