Bug 1032476

Summary: NoMethodError is seen whem moving an existing role to another.
Product: OpenShift Container Platform Reporter: Johnny Liu <jialiu>
Component: NodeAssignee: N. Harrison Ripps <hripps>
Status: CLOSED ERRATA QA Contact: libra bugs <libra-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.0.0CC: bleanhar, hripps, libra-onpremise-devel
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-16 09:11:10 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 Johnny Liu 2013-11-20 09:35:56 UTC
Description of problem:
$ ./oo-install -a -e
Checking for necessary tools...
...looks good.
Reusing existing installer assets.
Extracting oo-install to temporary directory...
Starting oo-install...

OpenShift Installer
----------------------------------------------------------------------

Welcome to OpenShift.
This installer will guide you through a basic system deployment, based
on one of the scenarios below.

Select from the following installation scenarios.
You can also type '?' for Help or 'q' to Quit.":
1. Install OpenShift Enterprise
2. Add a Node to OpenShift Enterprise
Type a selection and press <return>: 1


Here are the details of your current deployment.

DNS Settings
  * App Domain: my-ose.com.cn
  * Register OpenShift components with OpenShift DNS? Yes
  * Component Domain: my-ose.com.cn

Role Assignments
+-----------+------+
| Broker    | bb   |
| MsgServer | msg  |
| DBServer  | db   |
| Node      | node |
+-----------+------+

Host Information
+----------------+-------------+
| Host           | bb          |
| Roles          | Broker      |
| SSH Host       | 10.4.59.184 |
| User           | root        |
| IP Addr        | 10.4.59.184 |
| Install Status | completed   |
+----------------+-------------+
+----------------+----------------+
| Host           | msg            |
| Roles          | MsgServer      |
| SSH Host       | 10.4.59.138    |
| User           | root           |
| IP Addr        | 192.168.59.140 |
| Install Status | completed      |
+----------------+----------------+
+----------------+----------------+
| Host           | db             |
| Roles          | DBServer       |
| SSH Host       | 10.4.59.142    |
| User           | root           |
| IP Addr        | 192.168.59.135 |
| Install Status | completed      |
+----------------+----------------+
+----------------+-------------+
| Host           | node        |
| Roles          | Node        |
| SSH Host       | 10.4.59.188 |
| User           | root        |
| IP Addr        | 10.4.59.188 |
| Install Status | completed   |
+----------------+-------------+

Do you want to change the deployment info? (y/n/q/?) y

Choose from the following deployment configuration options:
1. Change the DNS configuration
2. Move an OpenShift role to a different host
3. Modify the information for an existing host
4. Add another Node host
5. Finish editing the deployment configuration
Type a selection and press <return>: 2

Which role do you want to move to a different host?:
1. Broker
2. MsgServer
3. DBServer
4. Node
Type a selection and press <return>: 4

Select a host to use for this role::
1. bb (Broker)
2. msg (MsgServer)
3. db (DBServer)
4. Create a new host
Type a selection and press <return>: 2

The node role was the only one assigned to host node. If you move the
role, this host will be removed from the deployment. Is it okay to
proceed? (y/n/q) y

Okay; removing host node.
/tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:647:in `remove_role': undefined method `id' for #<Installer::HostInstance:0x0000000121cdb0> (NoMethodError)
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:628:in `block (3 levels) in ui_move_role'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline/menu.rb:312:in `call'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline/menu.rb:312:in `select'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline.rb:361:in `choose'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:623:in `ui_move_role'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:374:in `block (3 levels) in ui_edit_deployment'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline/menu.rb:312:in `call'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline/menu.rb:312:in `select'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline.rb:361:in `choose'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:370:in `block in ui_edit_deployment'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:365:in `loop'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:365:in `ui_edit_deployment'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:155:in `ui_workflow'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:126:in `block (4 levels) in ui_welcome_screen'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline/menu.rb:312:in `call'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline/menu.rb:312:in `select'
	from /tmp/oo-install-ose-2.0b-20131119-1827/vendor/bundle/ruby/1.9.1/gems/highline-1.6.19/lib/highline.rb:361:in `choose'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:121:in `block in ui_welcome_screen'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:120:in `loop'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:120:in `ui_welcome_screen'
	from /tmp/oo-install-ose-2.0b-20131119-1827/lib/installer/assistant.rb:31:in `run'
	from /tmp/oo-install-ose-2.0b-20131119-1827/bin/oo-install:180:in `block in <main>'
	from /tmp/oo-install-ose-2.0b-20131119-1827/bin/oo-install:178:in `loop'
	from /tmp/oo-install-ose-2.0b-20131119-1827/bin/oo-install:178:in `<main>'
oo-install exited; keeping temporary assets in /tmp/


Version-Release number of selected component (if applicable):
oo-install-20131119-1827

How reproducible:
Always

Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 2 Luke Meyer 2013-11-22 21:59:24 UTC
Actually, Harrison, could you take a look at this? Still happening.

Comment 3 N. Harrison Ripps 2013-11-25 13:52:21 UTC
Found and nixed a few lingering calls to host_instance.id:

https://github.com/openshift/openshift-extras/pull/202

Fix is pushed to install.openshift.com

Comment 4 Johnny Liu 2013-11-26 06:41:05 UTC
Verified this bug with oo-install-20131125-2001, and PASS.

$ curl -s https://install.openshift.com/ -o oo-install
$ sh oo-install -a -e
Checking for necessary tools...
...looks good.
Downloading oo-install package...
Extracting oo-install to temporary directory...
Starting oo-install...

OpenShift Installer
----------------------------------------------------------------------

Welcome to OpenShift.
This installer will guide you through a basic system deployment, based
on one of the scenarios below.

Select from the following installation scenarios.
You can also type '?' for Help or 'q' to Quit.":
1. Install OpenShift Enterprise
2. Add a Node to OpenShift Enterprise
Type a selection and press <return>: 1


Your system deployment configuration is incomplete.
The installer will guide you through the necessary configuration
steps.

DNS Settings
  * App Domain: example.com
  * Register OpenShift components with OpenShift DNS? Yes

Role Assignments
+-----------+------+
| Broker    | bb   |
| MsgServer | bb   |
| DBServer  | bb   |
| Node      | node |
+-----------+------+

Host Information
+----------------+-----------------------------+
| Host           | bb                          |
| Roles          | Broker, MsgServer, DBServer |
| SSH Host       | 10.4.59.204                 |
| User           | root                        |
| IP Addr        | 192.168.59.211              |
| Install Status | completed                   |
+----------------+-----------------------------+
+----------------+----------------+
| Host           | node           |
| Roles          | Node           |
| SSH Host       | 10.4.59.144    |
| User           | root           |
| IP Addr        | 192.168.59.198 |
| IP Interface   | eth0           |
| Install Status | new            |
+----------------+----------------+

You must set some DNS-specific values.

What domain do you want to use for applications that are hosted by
this OpenShift deployment? |example.com| 

Do you want to register DNS entries for your OpenShift hosts with the
same OpenShift DNS service that will be managing DNS records for the
hosted applications? (y/n/q) n

Here are the details of your current deployment.

DNS Settings
  * App Domain: example.com
  * Register OpenShift components with OpenShift DNS? No

Role Assignments
+-----------+------+
| Broker    | bb   |
| MsgServer | bb   |
| DBServer  | bb   |
| Node      | node |
+-----------+------+

Host Information
+----------------+-----------------------------+
| Host           | bb                          |
| Roles          | Broker, MsgServer, DBServer |
| SSH Host       | 10.4.59.204                 |
| User           | root                        |
| IP Addr        | 192.168.59.211              |
| Install Status | completed                   |
+----------------+-----------------------------+
+----------------+----------------+
| Host           | node           |
| Roles          | Node           |
| SSH Host       | 10.4.59.144    |
| User           | root           |
| IP Addr        | 192.168.59.198 |
| IP Interface   | eth0           |
| Install Status | new            |
+----------------+----------------+

Choose from the following deployment configuration options:
1. Change the DNS configuration
2. Move an OpenShift role to a different host
3. Modify the information for an existing host
4. Add another Node host
5. Finish editing the deployment configuration
Type a selection and press <return>: 2

Which role do you want to move to a different host?:
1. Broker
2. MsgServer
3. DBServer
4. Node
Type a selection and press <return>: 2

Select a host to use for this role::
1. node (Node)
2. Create a new host
Type a selection and press <return>: 1

Here are the details of your current deployment.

DNS Settings
  * App Domain: example.com
  * Register OpenShift components with OpenShift DNS? No

Role Assignments
+-----------+------+
| Broker    | bb   |
| MsgServer | node |
| DBServer  | bb   |
| Node      | node |
+-----------+------+

Host Information
+----------------+------------------+
| Host           | bb               |
| Roles          | Broker, DBServer |
| SSH Host       | 10.4.59.204      |
| User           | root             |
| IP Addr        | 192.168.59.211   |
| Install Status | completed        |
+----------------+------------------+
+----------------+-----------------+
| Host           | node            |
| Roles          | MsgServer, Node |
| SSH Host       | 10.4.59.144     |
| User           | root            |
| IP Addr        | 192.168.59.198  |
| IP Interface   | eth0            |
| Install Status | new             |
+----------------+-----------------+

Choose from the following deployment configuration options:
1. Change the DNS configuration
2. Move an OpenShift role to a different host
3. Modify the information for an existing host
4. Add another Node host
5. Finish editing the deployment configuration
Type a selection and press <return>: 5


Here is subscription configuration that the installer will use for
this deployment.
+---------+-------+
| Setting | Value |
+---------+-------+
| type    | none  |
+---------+-------+

Do you want to make any changes to the subscription info in the
configuration file? (y/n/q/?) n

Do you want to set any temporary subscription settings for this
installation only? (y/n/q/?) n

Preflight check: verifying system and resource availability.

Checking bb:
* SSH connection succeeded
* Target host is running Red Hat Enterprise Linux
* Located yum

Checking node:
* SSH connection succeeded
* Target host is running Red Hat Enterprise Linux
* Located yum

Deploying workflow 'enterprise_deploy'.
Preparing to install OpenShift Enterprise on the following hosts:
  * 10.4.59.204: broker, dbserver
  * 10.4.59.144: node, mqserver
Running 'prepare' step on 10.4.59.144 (node)
Copying deployment scripts to target 10.4.59.144.