Commit e62c280c by Jeffrey Phillips

Fixes for binding status and bindable services

Fixes #154
Enables fix for
https://github.com/openshift/origin-web-console/issues/1466
parent 61adf8d0
......@@ -1218,13 +1218,17 @@ angular.module("openshiftCommonServices")
};
var isServiceBindable = function(serviceInstance, serviceClasses) {
var serviceClass = getServiceClassForInstance(serviceInstance, serviceClasses);
// If being deleted, it is not bindable
if (_.get(serviceInstance, 'metadata.deletionTimestamp')) {
return false;
}
// If provisioning failed, the service is not bindable
if ($filter('isServiceInstanceFailed')(serviceInstance, 'Failed')) {
return false;
}
var serviceClass = getServiceClassForInstance(serviceInstance, serviceClasses);
if (!serviceClass) {
return !!serviceInstance;
}
......
......@@ -91,7 +91,7 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
$templateCache.put('src/components/binding/bindResults.html',
"<div ng-if=\"!ctrl.error\">\n" +
"<div ng-if=\"!ctrl.error && !(ctrl.binding | isBindingFailed)\">\n" +
" <div ng-if=\"ctrl.binding && !(ctrl.binding | isBindingReady)\" class=\"bind-status\" ng-class=\"{'text-center': !ctrl.progressInline, 'show-progress': !ctrl.progressInline}\">\n" +
" <div class=\"spinner\" ng-class=\"{'spinner-sm': ctrl.progressInline, 'spinner-inline': ctrl.progressInline, 'spinner-lg': !ctrl.progressInline}\" aria-hidden=\"true\"></div>\n" +
" <h3 class=\"bind-message\">\n" +
......@@ -123,7 +123,7 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
" </div>\n" +
" </div>\n" +
"</div>\n" +
"<div ng-if=\"ctrl.error\">\n" +
"<div ng-if=\"ctrl.error || (ctrl.binding | isBindingFailed)\">\n" +
" <div class=\"bind-status\">\n" +
" <span class=\"pficon pficon-error-circle-o text-danger\" aria-hidden=\"true\"></span>\n" +
" <span class=\"sr-only\">Error</span>\n" +
......@@ -131,7 +131,7 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
" <span>Binding Failed</span>\n" +
" </h3>\n" +
" </div>\n" +
" <div class=\"sub-title\">\n" +
" <div ng-if=\"ctrl.error\" class=\"sub-title\">\n" +
" <span ng-if=\"ctrl.error.data.message\">\n" +
" {{ctrl.error.data.message | upperFirst}}\n" +
" </span>\n" +
......@@ -139,6 +139,9 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
" An error occurred creating the binding.\n" +
" </span>\n" +
" </div>\n" +
" <div ng-if=\"!ctrl.error\" class=\"sub-title\">\n" +
" {{ctrl.binding | bindingFailedMessage}}\n" +
" </div>\n" +
"</div>\n"
);
......@@ -1718,9 +1721,35 @@ angular.module('openshiftCommonUI')
return _.get(statusConditionFilter(apiObject, 'Ready'), 'status') === 'True';
};
})
.filter('serviceInstanceReadyMessage', function(statusConditionFilter) {
return function(apiObject) {
return _.get(statusConditionFilter(apiObject, 'Ready'), 'message');
};
})
.filter('isServiceInstanceFailed', function(statusConditionFilter) {
return function(apiObject) {
return _.get(statusConditionFilter(apiObject, 'Failed'), 'status') === 'True';
};
})
.filter('serviceInstanceFailedMessage', function(isServiceInstanceFailedFilter, statusConditionFilter) {
return function(apiObject) {
if (isServiceInstanceFailedFilter(apiObject)) {
return _.get(statusConditionFilter(apiObject, 'Failed'), 'message');
}
};
})
.filter('isBindingReady', function(isServiceInstanceReadyFilter) {
return isServiceInstanceReadyFilter;
})
.filter('isBindingFailed', function(isServiceInstanceFailedFilter) {
return isServiceInstanceFailedFilter;
})
.filter('bindingFailedMessage', function(serviceInstanceFailedMessageFilter) {
return serviceInstanceFailedMessageFilter;
})
.filter('bindingReadyMessage', function(serviceInstanceReadyMessageFilter) {
return serviceInstanceReadyMessageFilter;
})
.filter('hasDeployment', function(annotationFilter) {
return function(object) {
return !!annotationFilter(object, 'deployment.kubernetes.io/revision');
......
......@@ -262,7 +262,7 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
$templateCache.put('src/components/binding/bindResults.html',
"<div ng-if=\"!ctrl.error\">\n" +
"<div ng-if=\"!ctrl.error && !(ctrl.binding | isBindingFailed)\">\n" +
" <div ng-if=\"ctrl.binding && !(ctrl.binding | isBindingReady)\" class=\"bind-status\" ng-class=\"{'text-center': !ctrl.progressInline, 'show-progress': !ctrl.progressInline}\">\n" +
" <div class=\"spinner\" ng-class=\"{'spinner-sm': ctrl.progressInline, 'spinner-inline': ctrl.progressInline, 'spinner-lg': !ctrl.progressInline}\" aria-hidden=\"true\"></div>\n" +
" <h3 class=\"bind-message\">\n" +
......@@ -294,7 +294,7 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
" </div>\n" +
" </div>\n" +
"</div>\n" +
"<div ng-if=\"ctrl.error\">\n" +
"<div ng-if=\"ctrl.error || (ctrl.binding | isBindingFailed)\">\n" +
" <div class=\"bind-status\">\n" +
" <span class=\"pficon pficon-error-circle-o text-danger\" aria-hidden=\"true\"></span>\n" +
" <span class=\"sr-only\">Error</span>\n" +
......@@ -302,7 +302,7 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
" <span>Binding Failed</span>\n" +
" </h3>\n" +
" </div>\n" +
" <div class=\"sub-title\">\n" +
" <div ng-if=\"ctrl.error\" class=\"sub-title\">\n" +
" <span ng-if=\"ctrl.error.data.message\">\n" +
" {{ctrl.error.data.message | upperFirst}}\n" +
" </span>\n" +
......@@ -310,6 +310,9 @@ hawtioPluginLoader.addModule('openshiftCommonUI');
" An error occurred creating the binding.\n" +
" </span>\n" +
" </div>\n" +
" <div ng-if=\"!ctrl.error\" class=\"sub-title\">\n" +
" {{ctrl.binding | bindingFailedMessage}}\n" +
" </div>\n" +
"</div>\n"
);
......@@ -1922,9 +1925,35 @@ angular.module('openshiftCommonUI')
return _.get(statusConditionFilter(apiObject, 'Ready'), 'status') === 'True';
};
}])
.filter('serviceInstanceReadyMessage', ["statusConditionFilter", function(statusConditionFilter) {
return function(apiObject) {
return _.get(statusConditionFilter(apiObject, 'Ready'), 'message');
};
}])
.filter('isServiceInstanceFailed', ["statusConditionFilter", function(statusConditionFilter) {
return function(apiObject) {
return _.get(statusConditionFilter(apiObject, 'Failed'), 'status') === 'True';
};
}])
.filter('serviceInstanceFailedMessage', ["isServiceInstanceFailedFilter", "statusConditionFilter", function(isServiceInstanceFailedFilter, statusConditionFilter) {
return function(apiObject) {
if (isServiceInstanceFailedFilter(apiObject)) {
return _.get(statusConditionFilter(apiObject, 'Failed'), 'message');
}
};
}])
.filter('isBindingReady', ["isServiceInstanceReadyFilter", function(isServiceInstanceReadyFilter) {
return isServiceInstanceReadyFilter;
}])
.filter('isBindingFailed', ["isServiceInstanceFailedFilter", function(isServiceInstanceFailedFilter) {
return isServiceInstanceFailedFilter;
}])
.filter('bindingFailedMessage', ["serviceInstanceFailedMessageFilter", function(serviceInstanceFailedMessageFilter) {
return serviceInstanceFailedMessageFilter;
}])
.filter('bindingReadyMessage', ["serviceInstanceReadyMessageFilter", function(serviceInstanceReadyMessageFilter) {
return serviceInstanceReadyMessageFilter;
}])
.filter('hasDeployment', ["annotationFilter", function(annotationFilter) {
return function(object) {
return !!annotationFilter(object, 'deployment.kubernetes.io/revision');
......@@ -3141,13 +3170,17 @@ angular.module("openshiftCommonServices")
};
var isServiceBindable = function(serviceInstance, serviceClasses) {
var serviceClass = getServiceClassForInstance(serviceInstance, serviceClasses);
// If being deleted, it is not bindable
if (_.get(serviceInstance, 'metadata.deletionTimestamp')) {
return false;
}
// If provisioning failed, the service is not bindable
if ($filter('isServiceInstanceFailed')(serviceInstance, 'Failed')) {
return false;
}
var serviceClass = getServiceClassForInstance(serviceInstance, serviceClasses);
if (!serviceClass) {
return !!serviceInstance;
}
......
......@@ -62,7 +62,7 @@ angular.module('openshiftCommonUI').run(['$templateCache', function($templateCac
$templateCache.put('src/components/binding/bindResults.html',
"<div ng-if=\"!ctrl.error\">\n" +
"<div ng-if=\"!ctrl.error && !(ctrl.binding | isBindingFailed)\">\n" +
" <div ng-if=\"ctrl.binding && !(ctrl.binding | isBindingReady)\" class=\"bind-status\" ng-class=\"{'text-center': !ctrl.progressInline, 'show-progress': !ctrl.progressInline}\">\n" +
" <div class=\"spinner\" ng-class=\"{'spinner-sm': ctrl.progressInline, 'spinner-inline': ctrl.progressInline, 'spinner-lg': !ctrl.progressInline}\" aria-hidden=\"true\"></div>\n" +
" <h3 class=\"bind-message\">\n" +
......@@ -94,7 +94,7 @@ angular.module('openshiftCommonUI').run(['$templateCache', function($templateCac
" </div>\n" +
" </div>\n" +
"</div>\n" +
"<div ng-if=\"ctrl.error\">\n" +
"<div ng-if=\"ctrl.error || (ctrl.binding | isBindingFailed)\">\n" +
" <div class=\"bind-status\">\n" +
" <span class=\"pficon pficon-error-circle-o text-danger\" aria-hidden=\"true\"></span>\n" +
" <span class=\"sr-only\">Error</span>\n" +
......@@ -102,7 +102,7 @@ angular.module('openshiftCommonUI').run(['$templateCache', function($templateCac
" <span>Binding Failed</span>\n" +
" </h3>\n" +
" </div>\n" +
" <div class=\"sub-title\">\n" +
" <div ng-if=\"ctrl.error\" class=\"sub-title\">\n" +
" <span ng-if=\"ctrl.error.data.message\">\n" +
" {{ctrl.error.data.message | upperFirst}}\n" +
" </span>\n" +
......@@ -110,6 +110,9 @@ angular.module('openshiftCommonUI').run(['$templateCache', function($templateCac
" An error occurred creating the binding.\n" +
" </span>\n" +
" </div>\n" +
" <div ng-if=\"!ctrl.error\" class=\"sub-title\">\n" +
" {{ctrl.binding | bindingFailedMessage}}\n" +
" </div>\n" +
"</div>\n"
);
......
<div ng-if="!ctrl.error">
<div ng-if="!ctrl.error && !(ctrl.binding | isBindingFailed)">
<div ng-if="ctrl.binding && !(ctrl.binding | isBindingReady)" class="bind-status" ng-class="{'text-center': !ctrl.progressInline, 'show-progress': !ctrl.progressInline}">
<div class="spinner" ng-class="{'spinner-sm': ctrl.progressInline, 'spinner-inline': ctrl.progressInline, 'spinner-lg': !ctrl.progressInline}" aria-hidden="true"></div>
<h3 class="bind-message">
......@@ -30,7 +30,7 @@
</div>
</div>
</div>
<div ng-if="ctrl.error">
<div ng-if="ctrl.error || (ctrl.binding | isBindingFailed)">
<div class="bind-status">
<span class="pficon pficon-error-circle-o text-danger" aria-hidden="true"></span>
<span class="sr-only">Error</span>
......@@ -38,7 +38,7 @@
<span>Binding Failed</span>
</h3>
</div>
<div class="sub-title">
<div ng-if="ctrl.error" class="sub-title">
<span ng-if="ctrl.error.data.message">
{{ctrl.error.data.message | upperFirst}}
</span>
......@@ -46,4 +46,7 @@
An error occurred creating the binding.
</span>
</div>
<div ng-if="!ctrl.error" class="sub-title">
{{ctrl.binding | bindingFailedMessage}}
</div>
</div>
......@@ -131,9 +131,35 @@ angular.module('openshiftCommonUI')
return _.get(statusConditionFilter(apiObject, 'Ready'), 'status') === 'True';
};
})
.filter('serviceInstanceReadyMessage', function(statusConditionFilter) {
return function(apiObject) {
return _.get(statusConditionFilter(apiObject, 'Ready'), 'message');
};
})
.filter('isServiceInstanceFailed', function(statusConditionFilter) {
return function(apiObject) {
return _.get(statusConditionFilter(apiObject, 'Failed'), 'status') === 'True';
};
})
.filter('serviceInstanceFailedMessage', function(isServiceInstanceFailedFilter, statusConditionFilter) {
return function(apiObject) {
if (isServiceInstanceFailedFilter(apiObject)) {
return _.get(statusConditionFilter(apiObject, 'Failed'), 'message');
}
};
})
.filter('isBindingReady', function(isServiceInstanceReadyFilter) {
return isServiceInstanceReadyFilter;
})
.filter('isBindingFailed', function(isServiceInstanceFailedFilter) {
return isServiceInstanceFailedFilter;
})
.filter('bindingFailedMessage', function(serviceInstanceFailedMessageFilter) {
return serviceInstanceFailedMessageFilter;
})
.filter('bindingReadyMessage', function(serviceInstanceReadyMessageFilter) {
return serviceInstanceReadyMessageFilter;
})
.filter('hasDeployment', function(annotationFilter) {
return function(object) {
return !!annotationFilter(object, 'deployment.kubernetes.io/revision');
......
......@@ -110,13 +110,17 @@ angular.module("openshiftCommonServices")
};
var isServiceBindable = function(serviceInstance, serviceClasses) {
var serviceClass = getServiceClassForInstance(serviceInstance, serviceClasses);
// If being deleted, it is not bindable
if (_.get(serviceInstance, 'metadata.deletionTimestamp')) {
return false;
}
// If provisioning failed, the service is not bindable
if ($filter('isServiceInstanceFailed')(serviceInstance, 'Failed')) {
return false;
}
var serviceClass = getServiceClassForInstance(serviceInstance, serviceClasses);
if (!serviceClass) {
return !!serviceInstance;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment