Bug 1249374 - Move all 3.6 and above host communication to jsonrpc
Summary: Move all 3.6 and above host communication to jsonrpc
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: General
Version: ---
Hardware: Unspecified
OS: Unspecified
unspecified
low
Target Milestone: ovirt-3.6.0-rc
: 3.6.0
Assignee: Piotr Kliczewski
QA Contact: Pavel Stehlik
URL:
Whiteboard: infra
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-08-02 05:54 UTC by Oved Ourfali
Modified: 2016-02-10 19:12 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-01-13 15:47:27 UTC
oVirt Team: Infra
Embargoed:
ylavi: ovirt-3.6.0?
tnisan: exception?
ylavi: planning_ack+
rule-engine: devel_ack+
ylavi: testing_ack?


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 46066 0 ovirt-engine-3.6 MERGED jsonrpc: set the protocol as default Never
oVirt gerrit 46718 0 master MERGED jsonrpc: set the protocol as default Never
oVirt gerrit 47147 0 ovirt-engine-3.6.0 MERGED jsonrpc: set the protocol as default Never

Description Oved Ourfali 2015-08-02 05:54:40 UTC
Description of problem:
In 3.5 we allowed to choose either jsonrpc or xmlrpc.

In 3.6 we should do the following:
1. Have jsonrpc as the only option (can be removed from the UI)
2. Have jsonrpc as the default from the REST API, and fail for 3.6 clusters if another value is set.
3. On upgrading to 3.6 we shouldn't change the host communication protocol.


Only issue is when someone upgrades his cluster to 3.6 compatibility level. At this point the hosts are already running. What I'd suggest to do in this case is to check when running InitVdsOnUp, for hosts that are 3.6 cluster, change to jsonrpc (if not set already).

Comment 1 Piotr Kliczewski 2015-09-11 14:20:09 UTC
InitVdsOnUp is a bit too late because connection to a host is already estabilished at this time. We can do it there but it will applied during next reconnection. Is that OK?

Comment 2 Oved Ourfali 2015-09-11 15:06:01 UTC
Well, it would be best to catch it beforehand. 
Moti, thoughts?

Comment 3 Moti Asayag 2015-09-13 06:13:52 UTC
(In reply to Oved Ourfali from comment #2)
> Well, it would be best to catch it beforehand. 
> Moti, thoughts?

The correct place for such logic would be AddVdsCommand.canDoAction() and for consistency I'd add the same validation to UpdateVdsCommand.canDoAction().

Comment 4 Moti Asayag 2015-09-13 08:48:09 UTC
(In reply to Oved Ourfali from comment #0)
> Description of problem:
> In 3.5 we allowed to choose either jsonrpc or xmlrpc.
> 
> In 3.6 we should do the following:
> 1. Have jsonrpc as the only option (can be removed from the UI)

You may still have < 3.6 clusters which uses xmlrpc. Removing that option from the UI will hide that information from the user. It can be presented in a disabled way.

> 2. Have jsonrpc as the default from the REST API, and fail for 3.6 clusters
> if another value is set.

Comment 3 referred specifically for this item.

> 3. On upgrading to 3.6 we shouldn't change the host communication protocol.
> 
> 
> Only issue is when someone upgrades his cluster to 3.6 compatibility level.
> At this point the hosts are already running. What I'd suggest to do in this
> case is to check when running InitVdsOnUp, for hosts that are 3.6 cluster,
> change to jsonrpc (if not set already).

One option is blocking this action if not all of the running hosts are using JSON-RPC protocol. If there are non-running hosts which don't support JSON-RPC, we'll update them to use JSON-RPC as part of the 'update cluster version' process, and initialize hosts' brokers. This will assure all active hosts in 3.6 clusters are using JSON-RPC.

Comment 5 Piotr Kliczewski 2015-09-14 06:50:11 UTC
(In reply to Moti Asayag from comment #4)
> (In reply to Oved Ourfali from comment #0)
> > Description of problem:
> > In 3.5 we allowed to choose either jsonrpc or xmlrpc.
> > 
> > In 3.6 we should do the following:
> > 1. Have jsonrpc as the only option (can be removed from the UI)
> 
> You may still have < 3.6 clusters which uses xmlrpc. Removing that option
> from the UI will hide that information from the user. It can be presented in
> a disabled way.
> 

The idea is that none of the host will be using xmlrpc for 3.6 cluster so we are not going to hide any details.

> > 2. Have jsonrpc as the default from the REST API, and fail for 3.6 clusters
> > if another value is set.
> 
> Comment 3 referred specifically for this item.
> 
> > 3. On upgrading to 3.6 we shouldn't change the host communication protocol.
> > 
> > 
> > Only issue is when someone upgrades his cluster to 3.6 compatibility level.
> > At this point the hosts are already running. What I'd suggest to do in this
> > case is to check when running InitVdsOnUp, for hosts that are 3.6 cluster,
> > change to jsonrpc (if not set already).
> 
> One option is blocking this action if not all of the running hosts are using
> JSON-RPC protocol. If there are non-running hosts which don't support
> JSON-RPC, we'll update them to use JSON-RPC as part of the 'update cluster
> version' process, and initialize hosts' brokers. This will assure all active
> hosts in 3.6 clusters are using JSON-RPC.

It looks like good approach to me. If there are host which still use xmlrpc and
we want to upgrade cluster we can complain.

Comment 6 Sandro Bonazzola 2015-09-30 07:06:15 UTC
Please be sure to test the solution with Hosted Engine before merging.

Comment 7 Pavel Stehlik 2016-01-13 15:47:27 UTC
Closing old bugs. In case still happens, pls reopen.


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