All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openstack4j.openstack.networking.internal.ext.HealthMonitorServiceImpl Maven / Gradle / Ivy

package org.openstack4j.openstack.networking.internal.ext;

import static com.google.common.base.Preconditions.checkNotNull;

import java.util.List;
import java.util.Map;
import org.openstack4j.api.networking.ext.HealthMonitorService;
import org.openstack4j.model.common.ActionResponse;
import org.openstack4j.model.network.ext.HealthMonitor;
import org.openstack4j.model.network.ext.HealthMonitorUpdate;
import org.openstack4j.openstack.compute.functions.ToActionResponseFunction;
import org.openstack4j.openstack.networking.domain.ext.NeutronHealthMonitor;
import org.openstack4j.openstack.networking.domain.ext.NeutronHealthMonitor.HealthMonitors;
import org.openstack4j.openstack.networking.internal.BaseNetworkingServices;
/**
 *  OpenStack (Neutron) Lbaas healthmonitor based Operations
 * @author liujunpeng
 *
 */
public class HealthMonitorServiceImpl extends BaseNetworkingServices implements
HealthMonitorService {

	/**
	 * {@inheritDoc}
	 */
	@Override
	public List list() {
		return get(HealthMonitors.class, uri("/lb/health_monitors")).execute().getList();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public List list(Map filteringParams) {
		Invocation req = get(HealthMonitors.class, uri("/lb/health_monitors"));
		if (filteringParams != null) {
            for (Map.Entry entry : filteringParams.entrySet()) {
            	req = req.param(entry.getKey(), entry.getValue());
            }
        }
		return req.execute().getList();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public HealthMonitor get(String healthMonitorId) {
		checkNotNull(healthMonitorId);
		return get(NeutronHealthMonitor.class,uri("/lb/health_monitors/%s",healthMonitorId)).execute();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public ActionResponse delete(String healthMonitorId) {
		checkNotNull(healthMonitorId);
		return ToActionResponseFunction.INSTANCE.apply(delete(Void.class,uri("/lb/health_monitors/%s",healthMonitorId)).executeWithResponse());
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public HealthMonitor create(HealthMonitor healthMonitor) {
		checkNotNull(healthMonitor);
		return post(NeutronHealthMonitor.class,uri("/lb/health_monitors")).entity(healthMonitor).execute();
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public HealthMonitor update(String healthMonitorId,
			HealthMonitorUpdate healthMonitor) {
		checkNotNull(healthMonitorId);
		checkNotNull(healthMonitor);
		return put(NeutronHealthMonitor.class,uri("/lb/health_monitors/%s",healthMonitorId)).entity(healthMonitor).execute();
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy