2 * Copyright (C) 2013 Red Hat, Inc.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 * Authors : Brent Salisbury, Madhu Venugopal
11 package org.opendaylight.ovsdb.openstack.netvirt;
13 import org.opendaylight.controller.networkconfig.neutron.INeutronSecurityGroupAware;
14 import org.opendaylight.controller.networkconfig.neutron.INeutronSecurityRuleAware;
15 import org.opendaylight.controller.networkconfig.neutron.NeutronSecurityGroup;
16 import org.opendaylight.controller.networkconfig.neutron.NeutronSecurityRule;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
21 import java.net.HttpURLConnection;
24 * Handle requests for OpenStack Neutron v2.0 Port Security API calls.
26 public class PortSecurityHandler extends AbstractHandler
27 implements INeutronSecurityGroupAware, INeutronSecurityRuleAware{
29 static final Logger logger = LoggerFactory.getLogger(PortSecurityHandler.class);
32 public int canCreateNeutronSecurityGroup(NeutronSecurityGroup neutronSecurityGroup) {
33 return HttpURLConnection.HTTP_CREATED;
37 public void neutronSecurityGroupCreated(NeutronSecurityGroup neutronSecurityGroup) {
38 int result = HttpURLConnection.HTTP_BAD_REQUEST;
40 result = canCreateNeutronSecurityGroup(neutronSecurityGroup);
41 if (result != HttpURLConnection.HTTP_CREATED) {
42 logger.debug("Neutron Security Group creation failed {} ", result);
48 public int canUpdateNeutronSecurityGroup(NeutronSecurityGroup delta, NeutronSecurityGroup original) {
49 return HttpURLConnection.HTTP_OK;
53 public void neutronSecurityGroupUpdated(NeutronSecurityGroup neutronSecurityGroup) {
58 public int canDeleteNeutronSecurityGroup(NeutronSecurityGroup neutronSecurityGroup) {
59 return HttpURLConnection.HTTP_OK;
63 public void neutronSecurityGroupDeleted(NeutronSecurityGroup neutronSecurityGroup) {
64 //TODO: Trigger flowmod removals
65 int result = canDeleteNeutronSecurityGroup(neutronSecurityGroup);
66 if (result != HttpURLConnection.HTTP_OK) {
67 logger.error(" delete Neutron Security Rule validation failed for result - {} ", result);
73 * Invoked when a Security Rules creation is requested
74 * to indicate if the specified Rule can be created.
76 * @param neutronSecurityRule An instance of proposed new Neutron Security Rule object.
77 * @return A HTTP status code to the creation request.
81 public int canCreateNeutronSecurityRule(NeutronSecurityRule neutronSecurityRule) {
82 return HttpURLConnection.HTTP_CREATED;
86 public void neutronSecurityRuleCreated(NeutronSecurityRule neutronSecurityRule) {
87 int result = HttpURLConnection.HTTP_BAD_REQUEST;
89 result = canCreateNeutronSecurityRule(neutronSecurityRule);
90 if (result != HttpURLConnection.HTTP_CREATED) {
91 logger.debug("Neutron Security Group creation failed {} ", result);
97 public int canUpdateNeutronSecurityRule(NeutronSecurityRule delta, NeutronSecurityRule original) {
98 return HttpURLConnection.HTTP_OK;
102 public void neutronSecurityRuleUpdated(NeutronSecurityRule neutronSecurityRule) {
107 public int canDeleteNeutronSecurityRule(NeutronSecurityRule neutronSecurityRule) {
108 return HttpURLConnection.HTTP_OK;
112 public void neutronSecurityRuleDeleted(NeutronSecurityRule neutronSecurityRule) {
113 int result = canDeleteNeutronSecurityRule(neutronSecurityRule);
114 if (result != HttpURLConnection.HTTP_OK) {
115 logger.error(" delete Neutron Security Rule validation failed for result - {} ", result);