Removal of OpenContrail Renderer and config. 71/20871/2
authorKeith Burns (alagalah) <alagalah@gmail.com>
Thu, 21 May 2015 04:38:55 +0000 (21:38 -0700)
committerKeith Burns (alagalah) <alagalah@gmail.com>
Thu, 21 May 2015 05:06:57 +0000 (22:06 -0700)
Multiple emails to Juniper have gone unanswered regarding:
- intentions to participate in Lithium
- documentation
- ongoing support.

We cannot have code we cannot support or test in the project for release.

Change-Id: Ie1c32e5c010c1f57cc26cc71c9f1f53e5752885b
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
15 files changed:
groupbasedpolicy-oc-config/pom.xml [deleted file]
groupbasedpolicy-oc-config/src/main/resources/initial/15-groupbasedpolicy-oc.xml [deleted file]
renderers/oc/pom.xml [deleted file]
renderers/oc/src/main/java/org/opendaylight/controller/config/yang/config/oc_provider/impl/OcProviderModule.java [deleted file]
renderers/oc/src/main/java/org/opendaylight/controller/config/yang/config/oc_provider/impl/OcProviderModuleFactory.java [deleted file]
renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/L2DomainListener.java [deleted file]
renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/L2DomainManager.java [deleted file]
renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/OcRenderer.java [deleted file]
renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/PolicyManager.java [deleted file]
renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/Utils.java [deleted file]
renderers/oc/src/main/yang/oc-provider-impl.yang [deleted file]
renderers/oc/src/main/yang/oc-provider.yang [deleted file]
renderers/oc/src/main/yang/oc.yang [deleted file]
renderers/oc/src/test/java/org/opendaylight/groupbasedpolicy/renderer/oc/TestL2DomainManager.java [deleted file]
renderers/oc/src/test/java/org/opendaylight/groupbasedpolicy/renderer/oc/TestUtilsStaticMethod.java [deleted file]

diff --git a/groupbasedpolicy-oc-config/pom.xml b/groupbasedpolicy-oc-config/pom.xml
deleted file mode 100644 (file)
index 1dbeec7..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. 
-  This program and the accompanying materials are made available under the 
-  terms of the Eclipse Public License v1.0 which accompanies this distribution, 
-  and is available at http://www.eclipse.org/legal/epl-v10.html -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.opendaylight.groupbasedpolicy</groupId>
-    <artifactId>commons.groupbasedpolicy</artifactId>
-    <version>0.2.0-SNAPSHOT</version>
-    <relativePath>../commons/parent</relativePath>
-  </parent>
-
-  <artifactId>groupbasedpolicy-oc-config</artifactId>
-  <description>Controller Configuration files for groupbasedpolicy</description>
-  <packaging>jar</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>attach-artifacts</id>
-            <goals>
-              <goal>attach-artifact</goal>
-            </goals>
-            <phase>package</phase>
-            <configuration>
-              <artifacts>
-                <artifact>
-                  <file>${project.build.directory}/classes/initial/15-groupbasedpolicy-oc.xml</file>
-                  <type>xml</type>
-                  <classifier>config</classifier>
-                </artifact>
-              </artifacts>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/groupbasedpolicy-oc-config/src/main/resources/initial/15-groupbasedpolicy-oc.xml b/groupbasedpolicy-oc-config/src/main/resources/initial/15-groupbasedpolicy-oc.xml
deleted file mode 100644 (file)
index ccc8f70..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<snapshot>
-    <configuration>
-        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-                <module>
-                    <type xmlns:oc="urn:opendaylight:params:xml:ns:yang:controller:config:oc-provider:impl">
-                        oc:oc-provider-impl
-                    </type>
-                    <name>oc-provider-impl</name>
-
-                    <rpc-registry>
-                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
-                        <name>binding-rpc-broker</name>
-                    </rpc-registry>
-
-                    <data-broker>
-                      <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
-                      <name>binding-data-broker</name>
-                    </data-broker>
-                </module>
-            </modules>
-        </data>
-
-    </configuration>
-
-    <required-capabilities>
-        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:oc-provider:impl?module=oc-provider-impl&amp;revision=2014-06-11</capability>
-    </required-capabilities>
-
-</snapshot>
-
diff --git a/renderers/oc/pom.xml b/renderers/oc/pom.xml
deleted file mode 100644 (file)
index 4f90be7..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. 
-  This program and the accompanying materials are made available under the 
-  terms of the Eclipse Public License v1.0 which accompanies this distribution, 
-  and is available at http://www.eclipse.org/legal/epl-v10.html -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.opendaylight.groupbasedpolicy</groupId>
-    <artifactId>groupbasedpolicy-renderers</artifactId>
-    <version>0.2.0-SNAPSHOT</version>
-    <relativePath>../</relativePath>
-  </parent>
-
-  <artifactId>oc-renderer</artifactId>
-  <packaging>bundle</packaging>
-  <repositories>
-    <repository>
-      <id>juniper-contrail</id>
-      <url>https://github.com/Juniper/contrail-maven/raw/master/releases</url>
-    </repository>
-  </repositories>
-
-  <properties>
-    <juniper.opencontrail.version>1.2</juniper.opencontrail.version>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>net.juniper.contrail</groupId>
-      <artifactId>juniper-contrail-api</artifactId>
-      <version>${juniper.opencontrail.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpcore</artifactId>
-      <version>4.3.2</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>4.3.2</version>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-module-junit4</artifactId>
-      <version>1.5.6</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-api-mockito</artifactId>
-      <version>1.5.6</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <!-- project build -->
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <instructions>
-            <Import-Package>
-              org.apache.http.*;version="4.3.2",
-              *;resolution:=optional
-            </Import-Package>
-            <Embed-Dependency>httpclient,httpcore,commons-lang,commons-exec;type=!pom;inline=false</Embed-Dependency>
-            <Export-Package>
-              net.juniper.contrail.api.*;version="1.2"
-            </Export-Package>
-          </instructions>
-          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>yang-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <redirectTestOutputToFile>true</redirectTestOutputToFile>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
-
diff --git a/renderers/oc/src/main/java/org/opendaylight/controller/config/yang/config/oc_provider/impl/OcProviderModule.java b/renderers/oc/src/main/java/org/opendaylight/controller/config/yang/config/oc_provider/impl/OcProviderModule.java
deleted file mode 100644 (file)
index e44e691..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.opendaylight.controller.config.yang.config.oc_provider.impl;
-
-import org.opendaylight.groupbasedpolicy.renderer.oc.OcRenderer;
-
-public class OcProviderModule extends org.opendaylight.controller.config.yang.config.oc_provider.impl.AbstractOcProviderModule {
-    public OcProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public OcProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.oc_provider.impl.OcProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    public void customValidation() {
-        // add custom validation form module attributes here.
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-        return new OcRenderer(getDataBrokerDependency(),
-                getRpcRegistryDependency());
-}
-
-}
diff --git a/renderers/oc/src/main/java/org/opendaylight/controller/config/yang/config/oc_provider/impl/OcProviderModuleFactory.java b/renderers/oc/src/main/java/org/opendaylight/controller/config/yang/config/oc_provider/impl/OcProviderModuleFactory.java
deleted file mode 100644 (file)
index baabae4..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-* Generated file
-*
-* Generated from: yang module name: oc-provider-impl yang module local name: oc-provider-impl
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Thu Jan 22 14:49:56 IST 2015
-*
-* Do not modify this file unless it is present under src/main directory
-*/
-package org.opendaylight.controller.config.yang.config.oc_provider.impl;
-public class OcProviderModuleFactory extends org.opendaylight.controller.config.yang.config.oc_provider.impl.AbstractOcProviderModuleFactory {
-
-}
diff --git a/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/L2DomainListener.java b/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/L2DomainListener.java
deleted file mode 100644 (file)
index 71844b0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.groupbasedpolicy.renderer.oc;
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2FloodDomainId;
-
-
-/**
- * A listener to events related to L2 flood domain being added, removed or updated.
- */
-public interface L2DomainListener {
-    /**
-     * The L2 Flood Domain has been added or updated
-     * @param L2FloodDomainId L2 Flood domain id
-     */
-    public void L2DomainUpdated(L2FloodDomainId l2domainid);
-}
diff --git a/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/L2DomainManager.java b/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/L2DomainManager.java
deleted file mode 100644 (file)
index 83238ed..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.groupbasedpolicy.renderer.oc;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.UUID;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.ScheduledExecutorService;
-
-import net.juniper.contrail.api.ApiConnector;
-import net.juniper.contrail.api.types.Project;
-import net.juniper.contrail.api.types.VirtualNetwork;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.Tenants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.Tenant;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2FloodDomain;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public class L2DomainManager implements AutoCloseable, DataChangeListener {
-       private static final Logger LOG = LoggerFactory
-                       .getLogger(L2DomainManager.class);
-       static ApiConnector apiConnector;
-       private static final InstanceIdentifier<Tenant> TenantIid = InstanceIdentifier
-                       .builder(Tenants.class).child(Tenant.class).build();
-       private ListenerRegistration<DataChangeListener> listenerReg;
-
-       private final DataBroker dataProvider;
-       private List<L2DomainListener> listeners = new CopyOnWriteArrayList<>();
-
-       public L2DomainManager(DataBroker dataProvider,
-                       RpcProviderRegistry rpcRegistry, ScheduledExecutorService executor) {
-
-               super();
-               this.dataProvider = dataProvider;
-               if (dataProvider != null) {
-                       listenerReg = dataProvider.registerDataChangeListener(
-                                       LogicalDatastoreType.CONFIGURATION, TenantIid, this,
-                                       DataChangeScope.ONE);
-               } else
-                       listenerReg = null;
-
-               LOG.debug("Initialized L2 Domain manager");
-       }
-
-    public void registerListener(L2DomainListener listener) {
-        listeners.add(listener);
-    }
-
-       // ******************
-       // DataChangeListener
-       // ******************
-
-       @Override
-       public void onDataChanged(
-                       AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
-               for (DataObject dao : change.getCreatedData().values()) {
-                       if (dao instanceof Tenant)
-                       try {
-                               createL2FloodDomain((Tenant)dao);
-                       } catch (IOException e) {
-                               LOG.error("Could not create L2FloodDomain",e);
-                       }
-               }
-               Map<InstanceIdentifier<?>,DataObject> d = change.getUpdatedData();
-        for (Entry<InstanceIdentifier<?>, DataObject> entry : d.entrySet()) {
-            if (!(entry.getValue() instanceof Tenant)) continue;
-            DataObject old = change.getOriginalData().get(entry.getKey());
-            Tenant olddata = null;
-            if (old != null && old instanceof Tenant)
-                olddata = (Tenant)old;
-                try {
-                       updateL2FloodDomain(olddata, (Tenant)entry.getValue());
-                } catch (IOException e) {
-                       LOG.error("Could not update L2FloodDomain",e);
-                       }
-        }
-       }
-
-       @Override
-       public void close() throws Exception {
-               LOG.info("Closed L2Domain Manager");
-       }
-
-        /**
-     * Invoked when a L2FloodDomain create is requested
-     *
-     *@param  tenant
-     *                An instance of tenant data
-     */
-
-       public void createL2FloodDomain(Tenant tenant) throws IOException{
-               String tenantID = tenant.getId().toString();
-               if (tenant.getL2FloodDomain() != null){
-                       for(L2FloodDomain l2FloodDomain : tenant.getL2FloodDomain()) {
-                               canCreateFloodDomain(l2FloodDomain, tenantID);
-                               createFloodDomain(l2FloodDomain, tenantID);
-                       }
-               }
-       }
-
-        /**
-     * Invoked when a L2FloodDomain create is requested to indicate if the specified
-     * L2FloodDomain can be created using the specified delta.
-     *
-     *@param  l2FloodDomain
-     *                An instance of l2FloodDomain
-     *@param  tenantid
-     *                Tenant id
-     */
-
-       public int canCreateFloodDomain(L2FloodDomain l2FloodDomain, String tenantID) {
-        apiConnector = OcRenderer.apiConnector;
-
-        if (l2FloodDomain.getId() == null || l2FloodDomain.getName() == null
-                       || l2FloodDomain.getId().equals("") || l2FloodDomain.getName().equals("")) {
-            LOG.error("l2FloodDomain id or name can't be null/empty...");
-            return HttpURLConnection.HTTP_BAD_REQUEST;
-        }
-
-        try {
-            String l2FloodDomainUUID = Utils.uuidNameFormat(l2FloodDomain.getId().toString());
-            String projectUUID = Utils.uuidNameFormat(tenantID);
-            try {
-                if (!(l2FloodDomainUUID.contains("-"))) {
-                       l2FloodDomainUUID = Utils.uuidFormater(l2FloodDomainUUID);
-                }
-                if (!(projectUUID.contains("-"))) {
-                    projectUUID = Utils.uuidFormater(projectUUID);
-                }
-                boolean isValidl2FloodDomainUUID = Utils.isValidHexNumber(l2FloodDomainUUID);
-                boolean isValidprojectUUID = Utils.isValidHexNumber(projectUUID);
-                if (!isValidl2FloodDomainUUID || !isValidprojectUUID) {
-                    LOG.info("Badly formed Hexadecimal UUID...");
-                    return HttpURLConnection.HTTP_BAD_REQUEST;
-                }
-                projectUUID = UUID.fromString(projectUUID).toString();
-                l2FloodDomainUUID = UUID.fromString(l2FloodDomainUUID).toString();
-            } catch (Exception ex) {
-                LOG.error("UUID input incorrect", ex);
-                return HttpURLConnection.HTTP_BAD_REQUEST;
-            }
-
-            Project project = (Project) apiConnector.findById(Project.class, projectUUID);
-            if (project == null) {
-                try {
-                    Thread.currentThread();
-                    Thread.sleep(3000);
-                } catch (InterruptedException e) {
-                    LOG.error("InterruptedException :    ", e);
-                    return HttpURLConnection.HTTP_BAD_REQUEST;
-                }
-               project = (Project) apiConnector.findById(Project.class, projectUUID);
-                if (project == null) {
-                    LOG.error("Could not find projectUUID...");
-                    return HttpURLConnection.HTTP_NOT_FOUND;
-                }
-           }
-           VirtualNetwork virtualNetworkById = (VirtualNetwork) apiConnector.findById(VirtualNetwork.class, l2FloodDomainUUID);
-            if (virtualNetworkById != null) {
-                LOG.warn("l2FloodDomain already exists with UUID" + l2FloodDomainUUID);
-                return HttpURLConnection.HTTP_FORBIDDEN;
-            }
-            return HttpURLConnection.HTTP_OK;
-        } catch (Exception e) {
-            LOG.error("Exception :   " + e);
-            return HttpURLConnection.HTTP_INTERNAL_ERROR;
-        }
-    }
-
-    /**
-     * Invoked to create the specified L2FloodDomain.
-     *
-     * @param L2FloodDomain
-     *            An instance of new L2FloodDomain object.
-     *
-     * @param  tenantid
-     *            Tenant id
-     */
-    private void createFloodDomain(L2FloodDomain l2FloodDomain, String tenantid) throws IOException {
-        VirtualNetwork virtualNetwork = new VirtualNetwork();
-        virtualNetwork = mapNetworkProperties(l2FloodDomain, virtualNetwork, tenantid);
-        boolean l2FloodDomainCreated;
-        try {
-               l2FloodDomainCreated = apiConnector.create(virtualNetwork);
-            if (!l2FloodDomainCreated) {
-                LOG.warn("l2FloodDomain creation failed..");
-            }
-        } catch (IOException ioEx) {
-            LOG.error("Exception : " + ioEx);
-        }
-        LOG.info("l2FloodDomain : " + virtualNetwork.getName() + "  having UUID : " + virtualNetwork.getUuid() + "  sucessfully created...");
-    }
-
-    /**
-     * Invoked to map the L2FloodDomain object properties to the virtualNetwork
-     * object.
-     *
-     * @param L2FloodDomain
-     *            An instance of L2FloodDomain object.
-     * @param virtualNetwork
-     *            An instance of new virtualNetwork object.
-     *
-     * @param tenantid
-     *            tenant id
-     * @return {@link VirtualNetwork}
-     */
-    private VirtualNetwork mapNetworkProperties(L2FloodDomain l2FloodDomain, VirtualNetwork virtualNetwork, String tenantid) {
-        String l2FloodDomainUUID = Utils.uuidNameFormat(l2FloodDomain.getId().toString());
-        String projectUUID = Utils.uuidNameFormat(tenantid);
-        String l2FloodDomainName = Utils.uuidNameFormat(l2FloodDomain.getName().toString());
-        try {
-            if (!(l2FloodDomainUUID.contains("-"))) {
-               l2FloodDomainUUID = Utils.uuidFormater(l2FloodDomainUUID);
-            }
-            l2FloodDomainUUID = UUID.fromString(l2FloodDomainUUID).toString();
-            if (!(projectUUID.contains("-"))) {
-                projectUUID = Utils.uuidFormater(projectUUID);
-            }
-            projectUUID = UUID.fromString(projectUUID).toString();
-            Project project = (Project) apiConnector.findById(Project.class, projectUUID);
-            virtualNetwork.setParent(project);
-        } catch (Exception ex) {
-            LOG.error("UUID input incorrect", ex);
-        }
-        virtualNetwork.setName(l2FloodDomainName);
-        virtualNetwork.setUuid(l2FloodDomainUUID);
-        virtualNetwork.setDisplayName(l2FloodDomainName);
-        return virtualNetwork;
-    }
-
-    /**
-     * Invoked when a L2FloodDomain update is requested
-     *
-     *@param  oldData
-     *                An instance of Old tenant data
-     *@param  newData
-     *                An instance of New tenant data
-     */
-
-    public void updateL2FloodDomain(Tenant oldData, Tenant newData) throws IOException{
-               String tenantID = newData.getId().toString();
-               if (newData.getL2FloodDomain() != null){
-                       if(oldData.getL2FloodDomain() == null){
-                               for(L2FloodDomain l2FloodDomain : newData.getL2FloodDomain()) {
-                                       canCreateFloodDomain(l2FloodDomain, tenantID);
-                                       createFloodDomain(l2FloodDomain, tenantID);
-                               }
-                       }
-                       else {
-                               for(L2FloodDomain l2FloodDomainNew : newData.getL2FloodDomain()) {
-                                       for(L2FloodDomain l2FloodDomainOld : oldData.getL2FloodDomain()) {
-                                               String l2FloodDomainNewId = Utils.uuidNameFormat(l2FloodDomainNew.getId().toString());
-                                               String l2FloodDomainOldId = Utils.uuidNameFormat(l2FloodDomainOld.getId().toString());
-                                               if(l2FloodDomainNewId.equals(l2FloodDomainOldId)){
-                                                       canUpdateFloodDomain(l2FloodDomainNew, l2FloodDomainOld, tenantID);
-                                                       updateFloodDomain(l2FloodDomainNew, tenantID);
-                                               }
-                                               else{
-                                                       canCreateFloodDomain(l2FloodDomainNew, tenantID);
-                                                       createFloodDomain(l2FloodDomainNew, tenantID);
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-
-    /**
-     * Invoked when a L2FloodDomain update is requested to indicate if the specified
-     * L2FloodDomain can be changed using the specified delta.
-     *
-     *@param  l2FloodDomainNew
-     *                An instance of updated l2FloodDomain
-     *@param  l2FloodDomainOld
-     *                An instance of old l2FloodDomain
-     *@param  tenantid
-     *                Tenant id
-     */
-
-    public int canUpdateFloodDomain(L2FloodDomain l2FloodDomainNew, L2FloodDomain l2FloodDomainOld, String tenantID ) {
-        VirtualNetwork virtualnetwork;
-        apiConnector = OcRenderer.apiConnector;
-
-        String l2FloodDomainUUID = Utils.uuidNameFormat(l2FloodDomainOld.getId().toString());
-        String projectUUID = Utils.uuidNameFormat(tenantID);
-        try {
-            if (!(l2FloodDomainUUID.contains("-"))) {
-               l2FloodDomainUUID = Utils.uuidFormater(l2FloodDomainUUID);
-               l2FloodDomainUUID = UUID.fromString(l2FloodDomainUUID).toString();
-            }
-            if (!(projectUUID.contains("-"))) {
-                projectUUID = Utils.uuidFormater(projectUUID);
-                projectUUID = UUID.fromString(projectUUID).toString();
-            }
-        } catch (Exception ex) {
-            LOG.error("UUID input incorrect", ex);
-        }
-        if(l2FloodDomainNew.getName() == null){
-            LOG.error("L2 flood domain Name to be update can't be empty..");
-            return HttpURLConnection.HTTP_BAD_REQUEST;
-        }
-        try {
-            Project project = (Project) apiConnector.findById(Project.class, projectUUID);
-            String virtualNetworkByName = apiConnector.findByName(VirtualNetwork.class, project, l2FloodDomainNew.getName().toString());
-            if (virtualNetworkByName != null) {
-                LOG.warn("L2 flood domain with name  " + l2FloodDomainNew.getName() + "  already exists with UUID : " + virtualNetworkByName);
-                return HttpURLConnection.HTTP_FORBIDDEN;
-            }
-        } catch (IOException ioEx) {
-            LOG.error("IOException :     " + ioEx);
-            return HttpURLConnection.HTTP_INTERNAL_ERROR;
-        }
-        try {
-            virtualnetwork = (VirtualNetwork) apiConnector.findById(VirtualNetwork.class, l2FloodDomainUUID);
-        } catch (IOException ex) {
-            LOG.error("Exception :     " + ex);
-            return HttpURLConnection.HTTP_INTERNAL_ERROR;
-        }
-        if (virtualnetwork == null) {
-            LOG.error("No L2 flood domain exists for the specified UUID...");
-            return HttpURLConnection.HTTP_FORBIDDEN;
-        }
-        return HttpURLConnection.HTTP_OK;
-    }
-
-    /**
-     * Invoked to update the L2 Flood Domain
-     *
-     *@param  l2FloodDomain
-     *                An instance of updated l2FloodDomain
-     *@param  tenantid
-     *                Tenant id
-     */
-    private void updateFloodDomain(L2FloodDomain l2FloodDomain, String tenantid) throws IOException {
-        String l2FloodDomainUUID = Utils.uuidNameFormat(l2FloodDomain.getId().toString());
-        try {
-            if (!(l2FloodDomainUUID.contains("-"))) {
-               l2FloodDomainUUID = Utils.uuidFormater(l2FloodDomainUUID);
-            }
-            l2FloodDomainUUID = UUID.fromString(l2FloodDomainUUID).toString();
-        } catch (Exception ex) {
-            LOG.error("UUID input incorrect", ex);
-        }
-        VirtualNetwork virtualNetwork = (VirtualNetwork) apiConnector.findById(VirtualNetwork.class, l2FloodDomainUUID);
-        virtualNetwork.setDisplayName(Utils.uuidNameFormat(l2FloodDomain.getName().toString()));
-        boolean l2FloodDomainUpdate;
-        try {
-               l2FloodDomainUpdate = apiConnector.update(virtualNetwork);
-            if (!l2FloodDomainUpdate) {
-                LOG.warn("L2 flood domain Updation failed..");
-            }
-        } catch (IOException e) {
-            LOG.warn("L2 flood domain Updation failed..");
-        }
-        LOG.info("L2 flood domain having UUID : " + virtualNetwork.getUuid() + "  has been sucessfully updated...");
-    }
-}
\ No newline at end of file
diff --git a/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/OcRenderer.java b/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/OcRenderer.java
deleted file mode 100644 (file)
index 3787b11..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.groupbasedpolicy.renderer.oc;
-
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-
-import net.juniper.contrail.api.ApiConnector;
-import net.juniper.contrail.api.ApiConnectorFactory;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.groupbasedpolicy.resolver.PolicyResolver;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.oc.rev140528.OcConfig;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * Renderer that uses OpenContrail
- */
-public class OcRenderer implements AutoCloseable, DataChangeListener {
-    private static final Logger LOG =
-            LoggerFactory.getLogger(OcRenderer.class);
-    static ApiConnector apiConnector = null;
-    private final DataBroker dataBroker;
-    private final PolicyResolver policyResolver;
-    private final L2DomainManager l2domainManager;
-    private final PolicyManager policyManager;
-
-    private final ScheduledExecutorService executor;
-
-    private static final InstanceIdentifier<OcConfig> configIid =
-            InstanceIdentifier.builder(OcConfig.class).build();
-    private OcConfig config;
-    ListenerRegistration<DataChangeListener> configReg;
-
-    public OcRenderer(DataBroker dataProvider,
-                             RpcProviderRegistry rpcRegistry) {
-        super();
-        this.dataBroker = dataProvider;
-        apiConnector = getApiConnection();
-
-        int numCPU = Runtime.getRuntime().availableProcessors();
-        executor = Executors.newScheduledThreadPool(numCPU * 2);
-
-        l2domainManager = new L2DomainManager(dataProvider,rpcRegistry,executor);
-        policyResolver = new PolicyResolver(dataProvider, executor);
-
-        policyManager = new PolicyManager(dataProvider,
-                                          policyResolver,
-                                          l2domainManager,
-                                          rpcRegistry,
-                                          executor);
-
-        configReg =
-                dataProvider.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION,
-                                                        configIid,
-                                                        this,
-                                                        DataChangeScope.SUBTREE);
-        readConfig();
-        LOG.info("Initialized OC renderer");
-
-    }
-
-    public ApiConnector getApiConnection() {
-       String ipAddress = System.getProperty("plugin2oc.apiserver.ipaddress");
-       String port = System.getProperty("plugin2oc.apiserver.port");
-
-       int portNumber = 0;
-        try {
-            portNumber = Integer.parseInt(port.toString());
-        } catch (Exception ex) {
-            LOG.error("Missing entry in Config file of Opendaylight", ex);
-        }
-        apiConnector = ApiConnectorFactory.build(ipAddress, portNumber);
-        return apiConnector;
-    }
-
-    // *************
-    // AutoCloseable
-    // *************
-
-    @Override
-    public void close() throws Exception {
-        executor.shutdownNow();
-        if (configReg != null) configReg.close();
-        if (policyResolver != null) policyResolver.close();
-        if (l2domainManager != null) l2domainManager.close();
-    }
-
-    // ******************
-    // DataChangeListener
-    // ******************
-
-    @Override
-    public void onDataChanged(AsyncDataChangeEvent<InstanceIdentifier<?>,
-                                                   DataObject> change) {
-        readConfig();
-    }
-
-    // **************
-    // Implementation
-    // **************
-
-    private void readConfig() {
-        ListenableFuture<Optional<OcConfig>> dao =
-                dataBroker.newReadOnlyTransaction()
-                    .read(LogicalDatastoreType.CONFIGURATION, configIid);
-        Futures.addCallback(dao, new FutureCallback<Optional<OcConfig>>() {
-            @Override
-            public void onSuccess(final Optional<OcConfig> result) {
-                if (!result.isPresent()) return;
-                if (result.get() instanceof OcConfig) {
-                    config = (OcConfig)result.get();
-                    applyConfig();
-                }
-            }
-
-            @Override
-            public void onFailure(Throwable t) {
-                LOG.error("Failed to read configuration", t);
-            }
-        }, executor);
-    }
-
-    private void applyConfig() {
-        policyManager.setLearningMode(config.getLearningMode());
-    }
-}
diff --git a/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/PolicyManager.java b/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/PolicyManager.java
deleted file mode 100644 (file)
index 2c83423..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.groupbasedpolicy.renderer.oc;
-
-import java.util.Set;
-import java.util.concurrent.ScheduledExecutorService;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.groupbasedpolicy.resolver.EgKey;
-import org.opendaylight.groupbasedpolicy.resolver.PolicyListener;
-import org.opendaylight.groupbasedpolicy.resolver.PolicyResolver;
-import org.opendaylight.groupbasedpolicy.resolver.PolicyScope;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2FloodDomainId;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Manage policies
- */
-public class PolicyManager implements PolicyListener, L2DomainListener {
-    private static final Logger LOG =
-            LoggerFactory.getLogger(PolicyManager.class);
-
-    private final PolicyResolver policyResolver;
-    private final PolicyScope policyScope;
-    private final ScheduledExecutorService executor;
-
-    public PolicyManager(DataBroker dataBroker,
-                         PolicyResolver policyResolver,
-                         L2DomainManager l2domainManager,
-                         RpcProviderRegistry rpcRegistry,
-                         ScheduledExecutorService executor) {
-        super();
-        this.executor = executor;
-        this.policyResolver = policyResolver;
-
-       policyScope = policyResolver.registerListener(this);
-       l2domainManager.registerListener((L2DomainListener) this);
-        LOG.debug("Initialized OC policy manager");
-    }
-
-    /**
-     * Set the learning mode to the specified value
-     * @param learningMode the learning mode to set
-     */
-    public void setLearningMode(org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.oc.rev140528.OcConfig.LearningMode learningMode) {
-        // No-op for now
-    }
-
-    public void L2DomainUpdated(L2FloodDomainId id) {
-       }
-
-       @Override
-       public void policyUpdated(Set<EgKey> updatedGroups) {
-       }
-}
\ No newline at end of file
diff --git a/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/Utils.java b/renderers/oc/src/main/java/org/opendaylight/groupbasedpolicy/renderer/oc/Utils.java
deleted file mode 100644 (file)
index 76b8f6d..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.groupbasedpolicy.renderer.oc;
-
-import java.util.regex.Pattern;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class Utils {
-
-    static final Logger LOGGER = LoggerFactory.getLogger(Utils.class);
-
-    /**
-     * Invoked to format the UUID if UUID is not in correct format.
-     *
-     * @param String
-     *            An instance of UUID string.
-     *
-     * @return Correctly formated UUID string.
-     */
-    public static String uuidFormater(String uuid) {
-        String uuidPattern = null;
-        String id1 = uuid.substring(0, 8);
-        String id2 = uuid.substring(8, 12);
-        String id3 = uuid.substring(12, 16);
-        String id4 = uuid.substring(16, 20);
-        String id5 = uuid.substring(20, 32);
-        uuidPattern = (id1 + "-" + id2 + "-" + id3 + "-" + id4 + "-" + id5);
-        return uuidPattern;
-    }
-
-    /**
-     * Invoked to check the UUID if UUID is not a valid hexa-decimal number.
-     *
-     * @param String
-     *            An instance of UUID string.
-     *
-     * @return boolean value.
-     */
-    public static boolean isValidHexNumber(String uuid) {
-        try {
-            Pattern hex = Pattern.compile("^[0-9a-f]+$");
-            uuid = uuid.replaceAll("-", "");
-            boolean valid = hex.matcher(uuid).matches();
-            if (uuid.length() != 32) {
-                return false;
-            }
-            if (valid) {
-                return true;
-            } else {
-                return false;
-            }
-        } catch (NumberFormatException ex) {
-            LOGGER.error("Exception :  " + ex);
-            return false;
-        }
-    }
-
-    /**
-     * Invoked to format the UUID/Name in correct format.
-     *
-     * @param String
-     *            An instance of UUID/Name string.
-     *
-     * @return Correctly formated UUID/name string.
-     */
-
-    public static String uuidNameFormat(String value){
-       String[] pattern = value.split("=");
-       value = pattern[1].replace("]", "");
-       return value;
-    }
-}
\ No newline at end of file
diff --git a/renderers/oc/src/main/yang/oc-provider-impl.yang b/renderers/oc/src/main/yang/oc-provider-impl.yang
deleted file mode 100644 (file)
index d2fb9c8..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-module oc-provider-impl {
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:config:oc-provider:impl";
-    prefix "oc-provider-impl";
-
-    import config { prefix config; revision-date 2013-04-05; }
-    import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
-
-    description
-        "This module contains the base YANG definitions for
-          oc-provider impl implementation.";
-
-    revision "2014-06-11" {
-        description
-            "Initial revision.";
-    }
-
-    identity oc-provider-impl {
-        base "config:module-type";
-
-        config:java-name-prefix OcProvider;
-    }
-
-    // Augments the 'configuration' choice node under modules/module.
-    augment "/config:modules/config:module/config:configuration" {
-        case oc-provider-impl {
-            when "/config:modules/config:module/config:type = 'oc-provider-impl'";
-
-            //wires in the data-broker service
-            container data-broker {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity mdsal:binding-async-data-broker;
-                    }
-                }
-            }
-            // RPC Registry
-            container rpc-registry {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity mdsal:binding-rpc-registry;
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/renderers/oc/src/main/yang/oc-provider.yang b/renderers/oc/src/main/yang/oc-provider.yang
deleted file mode 100644 (file)
index 153ca04..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-module oc-provider {
-     yang-version 1;
-     namespace "urn:opendaylight:params:xml:ns:yang:controller:config:oc-provider";
-     prefix "oc-provider";
-
-     import config { prefix config; revision-date 2013-04-05; }
-
-     description
-         "This module contains the base YANG definitions for
-          oc-provider services.";
-
-     revision "2014-04-21" {
-         description
-             "Initial revision.";
-     }
-
-     identity oc-provider {
-         base "config:service-type";
-         config:java-class "org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.oc.rev140528.OcData";
-     }
-}
diff --git a/renderers/oc/src/main/yang/oc.yang b/renderers/oc/src/main/yang/oc.yang
deleted file mode 100644 (file)
index cb04e4a..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2015 Juniper Networks, Inc.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-module oc {
-    yang-version 1;
-
-    namespace "urn:opendaylight:groupbasedpolicy:oc";
-    prefix "oc";
-
-    import ietf-inet-types { prefix "inet"; revision-date 2010-09-24; }
-
-    import yang-ext {prefix ext; revision-date "2013-07-09";}
-
-    import endpoint {prefix endpoint;}
-
-    description
-        "This module defines the group-based policy oc renderer model.";
-
-    revision "2014-05-28" {
-        description
-            "Initial revision.";
-    }
-
-    // ******************
-    // Configuration Data
-    // ******************
-    container oc-config {
-        description
-            "Configuration for the OC renderer";
-        config true;
-
-           leaf learning-mode {
-            description
-                "Selects how and whether we learn endpoints";
-            type enumeration {
-                enum orchestrated {
-                    description
-                        "An external orchestration system will provide
-                         information about all endpoints, and no
-                         direct learning will occur.";
-                }
-            }
-        }
-    }
-
-    grouping endpoint-location {
-        description
-            "The location for this endpoint in the overlay network";
-
-        leaf location-type {
-            default internal;
-
-            type enumeration {
-                enum internal {
-                    description
-                    "The endpoint is located on a port that is part of
-                     the network.  You must include the node
-                     ID and port number for this endpoint.";
-                }
-                enum external {
-                    description "This endpoint is not inside the network.";
-                }
-            }
-        }
-        leaf port-id {
-            description
-                "The port where the endpoint is located.";
-            type string;
-        }
-    }
-
-    augment "/endpoint:endpoints/endpoint:endpoint" {
-        ext:augment-identifier "oc-context";
-        uses endpoint-location;
-    }
-
-    augment "/endpoint:register-endpoint/endpoint:input" {
-        ext:augment-identifier "oc-context-input";
-        uses endpoint-location;
-    }
-}
diff --git a/renderers/oc/src/test/java/org/opendaylight/groupbasedpolicy/renderer/oc/TestL2DomainManager.java b/renderers/oc/src/test/java/org/opendaylight/groupbasedpolicy/renderer/oc/TestL2DomainManager.java
deleted file mode 100644 (file)
index 083fc5c..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2015 Juniper Networks, Inc.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- */
-package org.opendaylight.groupbasedpolicy.renderer.oc;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ScheduledExecutorService;
-
-import net.juniper.contrail.api.ApiConnector;
-import net.juniper.contrail.api.types.FloatingIpPool;
-import net.juniper.contrail.api.types.Project;
-import net.juniper.contrail.api.types.VirtualNetwork;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.groupbasedpolicy.jsonrpc.JsonRpcEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2FloodDomainId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Name;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2FloodDomain;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-
-/**
- * Test Class for L2 Flood Domain.
- */
-
-public class TestL2DomainManager {
-    L2DomainManager domainmanager;
-    ApiConnector apiconnector;
-    ApiConnector mockedApiConnector = mock(ApiConnector.class);
-    VirtualNetwork mockedVirtualNetwork = mock(VirtualNetwork.class);
-    Project mockedProject = mock(Project.class);
-    FloatingIpPool mockedFloatingIpPool = mock(FloatingIpPool.class);
-    L2FloodDomain mockFd = mock(L2FloodDomain.class);
-    L2FloodDomain mockFdNew = mock(L2FloodDomain.class);
-    @Mock
-    private DataBroker mockBroker;
-    @Mock
-    private RpcProviderRegistry mockRpcRegistry;
-    @Mock
-    private ScheduledExecutorService mockExecutor;
-    @Mock
-    private ListenerRegistration<DataChangeListener> mockListener;
-    @Mock
-    private ListenerRegistration<DataChangeListener> mockL3Listener;
-    @Mock
-    private CheckedFuture<Optional<L2FloodDomain>,ReadFailedException> mockReadFuture;
-    @Mock
-    private JsonRpcEndpoint mockAgent;
-    @Mock
-    private OcRenderer mockOcRenderer;
-    @Mock
-    private WriteTransaction mockWriteTransaction;
-    @Mock
-    private ReadOnlyTransaction mockReadTransaction;
-    @Mock
-    private CheckedFuture<Void, TransactionCommitFailedException> mockWriteFuture;
-    @Mock
-    private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> mockChange;
-    @Mock
-    private Map<InstanceIdentifier<?>, DataObject> mockDaoMap;
-    @Mock
-    private Set<InstanceIdentifier<?>> mockDaoSet;
-    @Mock
-    private DataObject mockDao;
-    @Mock
-    private InstanceIdentifier<?> mockIid;
-    protected static final Logger logger = LoggerFactory.getLogger(L2DomainManager.class);
-    private static final String TENANT_ID = "22282cca-9a13-4d0c-a67e-a933ebb0b0ae";
-    private static final String TENANT_ID_VALUE = "[_value=22282cca-9a13-4d0c-a67e-a933ebb0b0ae]";
-    private static final L2FloodDomainId FLOOD_DOMAIN_ID = new L2FloodDomainId("08e3904c-7850-41c0-959a-1a646a83598a");
-    private static final Name FLOOD_DOMAIN_NAME = new Name("MOCK_DOMAIN");
-
-    List<DataObject> daoList =
-            new ArrayList<DataObject>();
-
-    @Before
-    public void beforeTest() {
-       domainmanager = new L2DomainManager(mockBroker, mockRpcRegistry, mockExecutor);
-        assertNotNull(mockedApiConnector);
-        assertNotNull(mockedVirtualNetwork);
-        assertNotNull(mockedProject);
-        assertNotNull(mockedFloatingIpPool);
-    }
-
-    @After
-    public void AfterTest() {
-       domainmanager = null;
-        apiconnector = null;
-    }
-
-   /*  Test method to check if flood domain id is null*/
-    @Test
-    public void testCanCreateFloodDomainIDNull() {
-       OcRenderer.apiConnector = mockedApiConnector;
-       when(mockFd.getId()).thenReturn(null);
-        assertEquals(HttpURLConnection.HTTP_BAD_REQUEST,domainmanager.canCreateFloodDomain(mockFd, TENANT_ID));
-    }
-
-    /* Test method to check if flood domain name is null*/
-    @Test
-    public void testCanCreateFloodDomainNameNull() {
-       OcRenderer.apiConnector = mockedApiConnector;
-       when(mockFd.getName()).thenReturn(null);
-        assertEquals(HttpURLConnection.HTTP_BAD_REQUEST,domainmanager.canCreateFloodDomain(mockFd, TENANT_ID));
-    }
-
-     /*Test method to check if FloodDomain ProjctUUID is not found */
-    @Test
-    public void testCanCreateFloodDomainProjctUUIDNotFound() throws IOException {
-       OcRenderer.apiConnector = mockedApiConnector;
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFd.getName()).thenReturn(FLOOD_DOMAIN_NAME);
-       when(mockedApiConnector.findById(Project.class, TENANT_ID)).thenReturn(null);
-       assertEquals(HttpURLConnection.HTTP_NOT_FOUND,domainmanager.canCreateFloodDomain(mockFd ,TENANT_ID_VALUE));
-    }
-
-    /*Test method to check if FloodDomain ProjctUUID is forbidden */
-    @Test
-    public void testCanCreateFloodDomainForbidden() throws IOException {
-       OcRenderer.apiConnector = mockedApiConnector;
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFd.getName()).thenReturn(FLOOD_DOMAIN_NAME);
-       String mockL2FloodDomainUUID = "08e3904c-7850-41c0-959a-1a646a83598a";
-       when(mockedApiConnector.findById(Project.class, TENANT_ID)).thenReturn(mockedProject);
-       when(mockedApiConnector.findById(VirtualNetwork.class, mockL2FloodDomainUUID)).thenReturn(mockedVirtualNetwork);
-       assertEquals(HttpURLConnection.HTTP_FORBIDDEN,domainmanager.canCreateFloodDomain(mockFd ,TENANT_ID_VALUE));
-    }
-
-    /*Test method to check if FloodDomain is created ok. */
-    @Test
-    public void testCanCreateFloodDomainOk() throws IOException {
-       OcRenderer.apiConnector = mockedApiConnector;
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFd.getName()).thenReturn(FLOOD_DOMAIN_NAME);
-       String mockL2FloodDomainUUID = "08e3904c-7850-41c0-959a-1a646a83598a";
-       when(mockedApiConnector.findById(Project.class, TENANT_ID)).thenReturn(mockedProject);
-       when(mockedApiConnector.findById(VirtualNetwork.class, mockL2FloodDomainUUID)).thenReturn(null);
-       assertEquals(HttpURLConnection.HTTP_OK,domainmanager.canCreateFloodDomain(mockFd ,TENANT_ID_VALUE));
-    }
-
-    /*Test method to check if FloodDomain Name is null */
-    @Test
-    public void testCanUpdateFloodDomainNameisNull(){
-       OcRenderer.apiConnector = mockedApiConnector;
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFdNew.getName()).thenReturn(null);
-       assertEquals(HttpURLConnection.HTTP_BAD_REQUEST, domainmanager.canUpdateFloodDomain(mockFdNew, mockFd, TENANT_ID_VALUE));
-    }
-
-    /*Test method to check if FloodDomainName already exists */
-    @Test
-    public void testCanUpdateFloodDomainNameALreadyExist() throws IOException{
-       OcRenderer.apiConnector = mockedApiConnector;
-       String mockL2FloodDomainUUID = "08e3904c-7850-41c0-959a-1a646a83598a";
-       String name = "MOCK_DOMAIN";
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFdNew.getName()).thenReturn(FLOOD_DOMAIN_NAME);
-       when(mockedApiConnector.findById(Project.class, TENANT_ID)).thenReturn(mockedProject);
-       when(mockedApiConnector.findById(VirtualNetwork.class, mockL2FloodDomainUUID)).thenReturn(mockedVirtualNetwork);
-       when(mockedApiConnector.findByName(VirtualNetwork.class, mockedProject, mockFdNew.getName().toString())).thenReturn(name);
-       assertEquals(HttpURLConnection.HTTP_FORBIDDEN, domainmanager.canUpdateFloodDomain(mockFdNew, mockFd, TENANT_ID_VALUE));
-    }
-
-    /*Test method to check if FloodDomain ID is null */
-    @Test
-    public void testCanUpdateFloodDomainIDisNull() throws IOException{
-       OcRenderer.apiConnector = mockedApiConnector;
-       String mockL2FloodDomainUUID = "08e3904c-7850-41c0-959a-1a646a83598a";
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFdNew.getName()).thenReturn(FLOOD_DOMAIN_NAME);
-       when(mockedApiConnector.findById(Project.class, TENANT_ID)).thenReturn(mockedProject);
-       when(mockedApiConnector.findById(VirtualNetwork.class, mockL2FloodDomainUUID)).thenReturn(null);
-       when(mockedApiConnector.findByName(VirtualNetwork.class, mockedProject, mockFdNew.getName().toString())).thenReturn(null);
-       assertEquals(HttpURLConnection.HTTP_FORBIDDEN, domainmanager.canUpdateFloodDomain(mockFdNew, mockFd, TENANT_ID_VALUE));
-    }
-
-    /*Test method to check if FloodDomain Name can be updated */
-    @Test
-    public void testCanUpdateFloodDomainOK() throws IOException{
-       OcRenderer.apiConnector = mockedApiConnector;
-       String mockL2FloodDomainUUID = "08e3904c-7850-41c0-959a-1a646a83598a";
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFdNew.getName()).thenReturn(FLOOD_DOMAIN_NAME);
-       when(mockedApiConnector.findById(Project.class, TENANT_ID)).thenReturn(mockedProject);
-       when(mockedApiConnector.findById(VirtualNetwork.class, mockL2FloodDomainUUID)).thenReturn(mockedVirtualNetwork);
-       when(mockedApiConnector.findByName(VirtualNetwork.class, mockedProject, mockFdNew.getName().toString())).thenReturn(null);
-       assertEquals(HttpURLConnection.HTTP_OK, domainmanager.canUpdateFloodDomain(mockFdNew, mockFd, TENANT_ID_VALUE));
-    }
-}
\ No newline at end of file
diff --git a/renderers/oc/src/test/java/org/opendaylight/groupbasedpolicy/renderer/oc/TestUtilsStaticMethod.java b/renderers/oc/src/test/java/org/opendaylight/groupbasedpolicy/renderer/oc/TestUtilsStaticMethod.java
deleted file mode 100644 (file)
index 14410ab..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.opendaylight.groupbasedpolicy.renderer.oc;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.net.HttpURLConnection;
-import java.util.concurrent.ScheduledExecutorService;
-
-import net.juniper.contrail.api.ApiConnector;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2FloodDomainId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Name;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2FloodDomain;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest( Utils.class )
-public class TestUtilsStaticMethod{
-       L2DomainManager domainmanager;
-       ApiConnector mockedApiConnector = mock(ApiConnector.class);
-    L2FloodDomain mockFd = mock(L2FloodDomain.class);
-    Utils mockUtils = mock(Utils.class);
-    private static final L2FloodDomainId FLOOD_DOMAIN_ID = new L2FloodDomainId("08e3904c-7850-41c0-959a-1a646a83598a");
-    private static final Name FLOOD_DOMAIN_NAME = new Name("MOCK_NETWORK");
-    private static final String TENANT_ID = "22282cca-9a13-4d0c-a67e-a933ebb0b0ae";
-    private static final String TENANT_ID_VALUE = "[_value=22282cca-9a13-4d0c-a67e-a933ebb0b0ae]";
-    @Mock
-    private DataBroker mockBroker;
-    @Mock
-    private RpcProviderRegistry mockRpcRegistry;
-    @Mock
-    private ScheduledExecutorService mockExecutor;
-
-    @Before
-    public void beforeTest() {
-       domainmanager = new L2DomainManager(mockBroker, mockRpcRegistry, mockExecutor);
-    }
-
-    /*Test method to check if FloodDomain id is invalid */
-    @Test
-    public void testCanCreateInvalidFloodDomainId(){
-       OcRenderer.apiConnector = mockedApiConnector;
-       String InvalidFloodDOmainID = "08e3904c-7850-41c0-9";
-       when(mockFd.getId()).thenReturn(FLOOD_DOMAIN_ID);
-       when(mockFd.getName()).thenReturn(FLOOD_DOMAIN_NAME);
-        PowerMockito.mockStatic(Utils.class);
-        PowerMockito.when(Utils.uuidNameFormat(mockFd.getId().toString())).thenReturn(InvalidFloodDOmainID);
-        PowerMockito.when(Utils.uuidNameFormat(TENANT_ID_VALUE)).thenReturn(TENANT_ID);
-        PowerMockito.when(Utils.isValidHexNumber(InvalidFloodDOmainID)).thenReturn(false);
-       assertEquals(HttpURLConnection.HTTP_BAD_REQUEST, domainmanager.canCreateFloodDomain(mockFd, TENANT_ID_VALUE));
-    }
-}
\ No newline at end of file