Fix nodejs4-npm-run-test and docs failure

The angular.js 1.6.0 release have two breaking changes caused the
test failures, you can check the detail changelog[0].
JSONP requests now require a trusted resource URL[1]
JSONP callback must be specified by jsonpCallbackParam config[2]

[0] https://github.com/angular/angular.js/blob/master/CHANGELOG.md#160-rainbow-tsunami-2016-12-08
[1] 6476af83cd
[2] fb66341871

The docutils 0.13.1 release breaks some documentation jobs
when it tries to build docs with remote images. This has been reported
upstream[3]. The version matches the supported docutils versions for
sphinx. The requirements patch is here: [4]

[3] https://sourceforge.net/p/docutils/bugs/301/
[4] https://review.openstack.org/#/c/409529/

Change-Id: If2b24303a60f8452a8ae8b7b3be36fa9b2541880
This commit is contained in:
Dong Ma 2017-01-07 08:56:43 -08:00
parent a238d7e22f
commit da1186f592
8 changed files with 36 additions and 16 deletions

View File

@ -3,7 +3,9 @@
/** /**
* @ngInject * @ngInject
*/ */
function OnConfig($stateProvider, $locationProvider, $urlRouterProvider) { function OnConfig($stateProvider, $locationProvider, $urlRouterProvider, $sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self','http://health.openstack.org/**']);
$stateProvider $stateProvider
.state('home', { .state('home', {
url: '/', url: '/',

View File

@ -64,7 +64,6 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/build_name/' + buildName + '/runs', { return $http.jsonp(config.apiRoot + '/build_name/' + buildName + '/runs', {
params: { params: {
callback: 'JSON_CALLBACK'
} }
}); });
}); });
@ -74,7 +73,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/build_name/' + buildName + '/test_runs', { return $http.jsonp(config.apiRoot + '/build_name/' + buildName + '/test_runs', {
cache: true, cache: true,
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };
@ -83,7 +82,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/runs/group_by/' + key, { return $http.jsonp(config.apiRoot + '/runs/group_by/' + key, {
cache: true, cache: true,
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };
@ -91,7 +90,7 @@ function HealthService($http, config) {
service.getRuns = function(options) { service.getRuns = function(options) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/runs', { return $http.jsonp(config.apiRoot + '/runs', {
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };
@ -99,7 +98,7 @@ function HealthService($http, config) {
service.getRunsForRunMetadataKey = function(runMetadataKey, value, options) { service.getRunsForRunMetadataKey = function(runMetadataKey, value, options) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/runs/key/' + runMetadataKey + '/' + value, { return $http.jsonp(config.apiRoot + '/runs/key/' + runMetadataKey + '/' + value, {
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };
@ -107,7 +106,7 @@ function HealthService($http, config) {
service.getTestsFromRun = function(runId) { service.getTestsFromRun = function(runId) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/run/' + runId + '/tests', { return $http.jsonp(config.apiRoot + '/run/' + runId + '/tests', {
params: { callback: 'JSON_CALLBACK' } params: {}
}); });
}); });
}; };
@ -115,7 +114,7 @@ function HealthService($http, config) {
service.getRunTestRuns = function(runId) { service.getRunTestRuns = function(runId) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/run/' + runId + '/test_runs', { return $http.jsonp(config.apiRoot + '/run/' + runId + '/test_runs', {
params: { callback: 'JSON_CALLBACK' } params: {}
}); });
}); });
}; };
@ -124,7 +123,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/tests', { return $http.jsonp(config.apiRoot + '/tests', {
cache: true, cache: true,
params: { callback: 'JSON_CALLBACK' } params: {}
}); });
}); });
}; };
@ -133,7 +132,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/runs/metadata/keys', { return $http.jsonp(config.apiRoot + '/runs/metadata/keys', {
cache: true, cache: true,
params: { callback: 'JSON_CALLBACK' } params: {}
}); });
}); });
}; };
@ -141,7 +140,7 @@ function HealthService($http, config) {
service.getTestRunList = function(testId, options) { service.getTestRunList = function(testId, options) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/test_runs/' + testId, { return $http.jsonp(config.apiRoot + '/test_runs/' + testId, {
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };
@ -152,7 +151,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/runs/key/' + runMetadataKey + '/' + value + '/recent', { return $http.jsonp(config.apiRoot + '/runs/key/' + runMetadataKey + '/' + value + '/recent', {
cache: true, cache: true,
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };
@ -163,7 +162,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/tests/recent/fail', { return $http.jsonp(config.apiRoot + '/tests/recent/fail', {
cache: true, cache: true,
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };
@ -172,7 +171,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/tests/prefix', { return $http.jsonp(config.apiRoot + '/tests/prefix', {
cache: true, cache: true,
params: { callback: 'JSON_CALLBACK' } params: {}
}); });
}); });
}; };
@ -183,7 +182,7 @@ function HealthService($http, config) {
return config.get().then(function(config) { return config.get().then(function(config) {
return $http.jsonp(config.apiRoot + '/tests/prefix/' + prefix, { return $http.jsonp(config.apiRoot + '/tests/prefix/' + prefix, {
cache: true, cache: true,
params: angular.extend(options, { callback: 'JSON_CALLBACK' }) params: angular.extend(options)
}); });
}); });
}; };

View File

@ -4,6 +4,7 @@
hacking<0.11,>=0.10.0 hacking<0.11,>=0.10.0
coverage>=3.6 # Apache-2.0 coverage>=3.6 # Apache-2.0
docutils>=0.11,!=0.13.1 # OSI-Approved Open Source, Public Domain
os-testr>=0.4.1 # Apache-2.0 os-testr>=0.4.1 # Apache-2.0
mock>=1.2 # BSD mock>=1.2 # BSD
fixtures>=1.3.1 # Apache-2.0/BSD fixtures>=1.3.1 # Apache-2.0/BSD

View File

@ -3,7 +3,9 @@ describe('GroupedRunsController', function() {
module('app'); module('app');
module('app.controllers'); module('app.controllers');
}); });
beforeEach(module(function ($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self','http://8.8.4.4:8080/**']);
}));
var $scope, $httpBackend, $controller, healthService, viewService; var $scope, $httpBackend, $controller, healthService, viewService;
var API_ROOT = 'http://8.8.4.4:8080'; var API_ROOT = 'http://8.8.4.4:8080';
var DEFAULT_END_DATE = new Date(); var DEFAULT_END_DATE = new Date();

View File

@ -4,6 +4,10 @@ describe('JobController', function() {
module('app.controllers'); module('app.controllers');
}); });
beforeEach(module(function ($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self','http://8.8.4.4:8080/**']);
}));
var $scope, $httpBackend, $controller, healthService, viewService; var $scope, $httpBackend, $controller, healthService, viewService;
var API_ROOT = 'http://8.8.4.4:8080'; var API_ROOT = 'http://8.8.4.4:8080';
var DEFAULT_END_DATE = new Date(); var DEFAULT_END_DATE = new Date();

View File

@ -4,6 +4,10 @@ describe('TestsDetailController', function() {
module('app.controllers'); module('app.controllers');
}); });
beforeEach(module(function ($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self','http://8.8.4.4:8080/**']);
}));
var $scope, $httpBackend, $controller, healthService; var $scope, $httpBackend, $controller, healthService;
var API_ROOT = 'http://8.8.4.4:8080'; var API_ROOT = 'http://8.8.4.4:8080';
var DEFAULT_START_DATE = new Date(); var DEFAULT_START_DATE = new Date();

View File

@ -4,6 +4,10 @@ describe('TestsController', function() {
module('app.controllers'); module('app.controllers');
}); });
beforeEach(module(function ($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self','http://8.8.4.4:8080/**']);
}));
var $scope, $httpBackend, $controller, healthService; var $scope, $httpBackend, $controller, healthService;
var API_ROOT = 'http://8.8.4.4:8080'; var API_ROOT = 'http://8.8.4.4:8080';
var DEFAULT_START_DATE = new Date(); var DEFAULT_START_DATE = new Date();

View File

@ -4,6 +4,10 @@ describe('HealthService', function() {
module('app.services'); module('app.services');
}); });
beforeEach(module(function ($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self','http://8.8.4.4:8080/**']);
}));
var $httpBackend, healthService; var $httpBackend, healthService;
var API_ROOT = 'http://8.8.4.4:8080'; var API_ROOT = 'http://8.8.4.4:8080';
var DEFAULT_START_TIME = '2010-01-01T01:00:00'; var DEFAULT_START_TIME = '2010-01-01T01:00:00';