Add filterFacets for loadBalancerResourceType
Change-Id: Ia3ebfaf021dc821f4ddc47a80f34732671e43d8e
This commit is contained in:
parent
633c04b2fc
commit
7f575b011e
|
@ -508,9 +508,12 @@ class LoadBalancers(generic.View):
|
|||
|
||||
The listing result is an object with property "items".
|
||||
"""
|
||||
filters = rest_utils.parse_filters_kwargs(request)
|
||||
kwargs = filters[0]
|
||||
del kwargs['full']
|
||||
conn = _get_sdk_connection(request)
|
||||
lb_list = _sdk_object_to_list(conn.load_balancer.load_balancers(
|
||||
project_id=request.user.project_id))
|
||||
project_id=request.user.project_id, **kwargs))
|
||||
if request.GET.get('full') and neutron.floating_ip_supported(request):
|
||||
add_floating_ip_info(request, lb_list)
|
||||
return {'items': lb_list}
|
||||
|
|
|
@ -73,13 +73,12 @@
|
|||
* @name horizon.app.core.openstack-service-api.lbaasv2.getLoadBalancers
|
||||
* @description
|
||||
* Get a list of load balancers.
|
||||
* @param {boolean} full
|
||||
* @param {Object} params
|
||||
* The listing result is an object with property "items". Each item is
|
||||
* a load balancer.
|
||||
*/
|
||||
|
||||
function getLoadBalancers(full) {
|
||||
var params = { full: full };
|
||||
function getLoadBalancers(params) {
|
||||
return apiService.get('/api/lbaas/loadbalancers/', { params: params })
|
||||
.error(function () {
|
||||
toastService.add('error', gettext('Unable to retrieve load balancers.'));
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
method: 'get',
|
||||
path: '/api/lbaas/loadbalancers/',
|
||||
error: 'Unable to retrieve load balancers.',
|
||||
testInput: [ true ],
|
||||
data: { params: { full: true } }
|
||||
testInput: [ { full: true, name: 'test' } ],
|
||||
data: { params: { full: true, name: 'test' } }
|
||||
},
|
||||
{
|
||||
func: 'getLoadBalancer',
|
||||
|
|
|
@ -87,6 +87,48 @@
|
|||
priority: 1
|
||||
});
|
||||
|
||||
loadBalancerResourceType.filterFacets
|
||||
.append({
|
||||
label: gettext('Name'),
|
||||
name: 'name',
|
||||
isServer: true,
|
||||
singleton: true,
|
||||
persistent: true
|
||||
})
|
||||
.append({
|
||||
label: gettext('IP Address'),
|
||||
name: 'vip_address',
|
||||
isServer: true,
|
||||
singleton: true
|
||||
})
|
||||
.append({
|
||||
label: gettext('Operating Status'),
|
||||
name: 'operating_status',
|
||||
isServer: true,
|
||||
singleton: true,
|
||||
options: [
|
||||
{label: gettext('Online'), key: 'ONLINE'},
|
||||
{label: gettext('Offline'), key: 'OFFLINE'},
|
||||
{label: gettext('Degraded'), key: 'DEGRADED'},
|
||||
{label: gettext('Error'), key: 'ERROR'},
|
||||
{label: gettext('No Monitor'), key: 'NO_MONITOR'}
|
||||
]
|
||||
})
|
||||
.append({
|
||||
label: gettext('Provisioning Status'),
|
||||
name: 'provisioning_status',
|
||||
isServer: true,
|
||||
singleton: true,
|
||||
options: [
|
||||
{label: gettext('Active'), key: 'ACTIVE'},
|
||||
{label: gettext('Inactive'), key: 'INACTIVE'},
|
||||
{label: gettext('Pending Create'), key: 'PENDING_CREATE'},
|
||||
{label: gettext('Pending Update'), key: 'PENDING_UPDATE'},
|
||||
{label: gettext('Pending Delete'), key: 'PENDING_DELETE'},
|
||||
{label: gettext('Error'), key: 'ERROR'}
|
||||
]
|
||||
});
|
||||
|
||||
loadBalancerResourceType.itemActions
|
||||
.append({
|
||||
id: 'loadBalancerEdit',
|
||||
|
|
|
@ -37,6 +37,19 @@
|
|||
expect(resourceType).toBeDefined();
|
||||
});
|
||||
|
||||
it('should set facets for search', function () {
|
||||
var names = registry.getResourceType(resourceType).filterFacets
|
||||
.map(getName);
|
||||
expect(names).toContain('name');
|
||||
expect(names).toContain('vip_address');
|
||||
expect(names).toContain('operating_status');
|
||||
expect(names).toContain('provisioning_status');
|
||||
|
||||
function getName(x) {
|
||||
return x.name;
|
||||
}
|
||||
});
|
||||
|
||||
it('should register item actions', function () {
|
||||
var actions = registry.getResourceType(resourceType).itemActions;
|
||||
expect(actionHasId(actions, 'loadBalancerEdit')).toBe(true);
|
||||
|
|
|
@ -204,8 +204,9 @@
|
|||
return 'project/load_balancer/' + item.loadbalancerId + '/listeners/' + item.id;
|
||||
}
|
||||
|
||||
function getLoadBalancersPromise() {
|
||||
return api.getLoadBalancers(true).then(modifyResponse);
|
||||
function getLoadBalancersPromise(params) {
|
||||
params.full = true;
|
||||
return api.getLoadBalancers(params).then(modifyResponse);
|
||||
|
||||
function modifyResponse(response) {
|
||||
return {data: {items: response.data.items.map(modifyItem)}};
|
||||
|
|
|
@ -220,7 +220,7 @@
|
|||
function initCreateLoadBalancer(keymanagerPromise) {
|
||||
model.context.submit = createLoadBalancer;
|
||||
return $q.all([
|
||||
lbaasv2API.getLoadBalancers().then(onGetLoadBalancers),
|
||||
lbaasv2API.getLoadBalancers({ full: false }).then(onGetLoadBalancers),
|
||||
neutronAPI.getSubnets().then(onGetSubnets),
|
||||
neutronAPI.getPorts().then(onGetPorts),
|
||||
novaAPI.getServers().then(onGetServers),
|
||||
|
|
Loading…
Reference in New Issue