- INeutronLoadBalancerListenerCRUD loadBalancerListenerInterface = getNeutronInterfaces().getLoadBalancerListenerInterface();
- if (input.isSingleton()) {
- NeutronLoadBalancerListener singleton = input.getSingleton();
-
- Object[] instances = NeutronUtil.getInstances(INeutronLoadBalancerListenerAware.class, this);
- if (instances != null) {
- if (instances.length > 0) {
- for (Object instance : instances) {
- INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance;
- int status = service.canCreateNeutronLoadBalancerListener(singleton);
- if (status < HTTP_OK_BOTTOM || status > HTTP_OK_TOP) {
- return Response.status(status).build();
- }
- }
- } else {
- throw new ServiceUnavailableException(NO_PROVIDERS);
- }
- } else {
- throw new ServiceUnavailableException(NO_PROVIDER_LIST);
- }
- loadBalancerListenerInterface.addNeutronLoadBalancerListener(singleton);
- if (instances != null) {
- for (Object instance : instances) {
- INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance;
- service.neutronLoadBalancerListenerCreated(singleton);
- }
- }
- } else {
- Object[] instances = NeutronUtil.getInstances(INeutronLoadBalancerListenerAware.class, this);
- for (NeutronLoadBalancerListener test : input.getBulk()) {
- if (instances != null) {
- if (instances.length > 0) {
- for (Object instance : instances) {
- INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance;
- int status = service.canCreateNeutronLoadBalancerListener(test);
- if (status < HTTP_OK_BOTTOM || status > HTTP_OK_TOP) {
- return Response.status(status).build();
- }
- }
- } else {
- throw new ServiceUnavailableException(NO_PROVIDERS);
- }
- } else {
- throw new ServiceUnavailableException(NO_PROVIDER_LIST);
- }
- }
- /*
- * now, each element of the bulk request can be added to the cache
- */
- for (NeutronLoadBalancerListener test : input.getBulk()) {
- loadBalancerListenerInterface.addNeutronLoadBalancerListener(test);
- if (instances != null) {
- for (Object instance : instances) {
- INeutronLoadBalancerListenerAware service = (INeutronLoadBalancerListenerAware) instance;
- service.neutronLoadBalancerListenerCreated(test);
- }
- }
- }
- }
- return Response.status(HttpURLConnection.HTTP_CREATED).entity(input).build();