cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (CLOUDSTACK-8758) Handle redirects in communication with NXS controller (a.k.a. Nicira NVP)
Date Tue, 25 Aug 2015 18:49:46 GMT


ASF subversion and git services commented on CLOUDSTACK-8758:

Commit 44ba14d17ba3b8fa00cd05c97eaceed49367816c in cloudstack's branch refs/heads/master from
[;h=44ba14d ]

Merge pull request #737 from miguelaferreira/feature/mferreira/ncx-follow-redirects-gardened-rebase

CLOUDSTACK-8758: Handle redirects in communication with NXS controller (a.k.a. Nicira NVP)When
an NSX controller node is part of a cluster it will redirect API calls to the master controller.
Because the ACS management server does not follow such redirects, if there is a change of
master within a NSX cluster, the NSX device (a.k.a.  NiciraNvp) needs to be reconfigured (via
the management server DB).

The goal of this PR is to enable ACS management server to follow HTTP redirects sent by NSX
controllers. However, other changes were made to the cloud-utils module that provides the
REST client that the NSX plugin uses.

Cosmetic changes:
* Upgrade maven module structure for cloud-utils and cloud-plugin-netowkr-nvp to comply with
maven default
* Several refactorings on both modules to consistently format the code, remove unused code,
declare final when possible, remove auto generated comments, etc

Other changes:
* Upgrade HTTP library used in REST client to version 4.5 of Apache HTTP Components
* Implement generic REST client that supports HTTP redirects
* Implement NSX specific REST client
* Simplify NSX api implementation
* Previously existing unit tests for both the REST client and NSX api were either maintained
in the same test classes, moved to new test classes (because code under tests also moved),
or removed (because code under tests was also removed)
* New Marvin tests for NSX controllers

* Ran all unit tests present in the project
* Ran Java Integration tests for NSX api targeting both a master and a slave controller
* Ran new Marvin test for NSX controller
* Manual inspection of logs to confirm redirection is taking place

* pr/737:
  Use NSX specific RestClient in API implementation (NiciraNvpApi)
  Refactor NSX api implementation (NiciraNvpApi)
  Add NSX specific RestClient implementation
  Delegate HTTP protocol activity in RESTServiceConnector to RestClient
  Add basic RestClient implentation based on HTTP Components 4.5
  Code clean up in cloud-plugin-network-nvp project
  Code clean up in cloud-utils project
  Refactor cloud-plugin-network-nvp project into Maven default structure
  Refactor cloud-utils project into Maven default structure
  Fix unit-test library dependencies
  Add Marvin test for Nicira NVP plugin
  Create Nicira NVP devices and enable plugin at deploy

Signed-off-by: Remi Bergsma <>

> Handle redirects in communication with NXS controller (a.k.a. Nicira NVP)
> -------------------------------------------------------------------------
>                 Key: CLOUDSTACK-8758
>                 URL:
>             Project: CloudStack
>          Issue Type: Improvement
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Network Devices
>            Reporter: Miguel Ferreira
>            Priority: Minor
>             Fix For: 4.6.0
>   Original Estimate: 336h
>  Remaining Estimate: 336h
> When setup in a cluster, NSX controllers will redirect calls to the cluster master. However,
the NiciraNvp plugin does not handle those redirects correctly. The underlying HTTP client
will transparently redirect calls, but the plugin will aways override the target host to the
initial value.
> The underlying HTTP library being used at the moment is Apache HTTP Commons, which has
been superseded by Apache HTTP Components which introduces a new architecture. This library
should be upgraded to the new architecture since this will make it easier to transparently
handle redirects,

This message was sent by Atlassian JIRA

View raw message