X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fopenflow%2Fmd%2Fcore%2Fsal%2FOpenflowPluginProvider.java;h=33b65a4bc26cb28f6ab156f627ac8c54119854c5;hb=ecb084d1839da3acf6ad6d9660abb7ca07ad4020;hp=3ca9a2676d0afa0ca0687797b64e40d4c1ebcef8;hpb=6545458fe6c50d7bc83400234066d2729553132b;p=openflowplugin.git diff --git a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/OpenflowPluginProvider.java b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/OpenflowPluginProvider.java index 3ca9a2676d..33b65a4bc2 100644 --- a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/OpenflowPluginProvider.java +++ b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/OpenflowPluginProvider.java @@ -16,9 +16,12 @@ import org.opendaylight.openflowplugin.extension.api.ExtensionConverterRegistrat import org.opendaylight.openflowplugin.openflow.md.core.MDController; import org.opendaylight.openflowplugin.openflow.md.core.extension.ExtensionConverterManager; import org.opendaylight.openflowplugin.openflow.md.core.extension.ExtensionConverterManagerImpl; +import org.opendaylight.openflowplugin.openflow.md.core.session.OFRoleManager; +import org.opendaylight.openflowplugin.openflow.md.core.session.OFSessionUtil; import org.opendaylight.openflowplugin.api.statistics.MessageCountDumper; import org.opendaylight.openflowplugin.api.statistics.MessageObservatory; import org.opendaylight.openflowplugin.statistics.MessageSpyCounterImpl; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.OfpRole; import org.opendaylight.yangtools.yang.binding.DataContainer; import org.osgi.framework.BundleContext; import org.slf4j.Logger; @@ -45,12 +48,17 @@ public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseab private ExtensionConverterManager extensionConverterManager; + private OfpRole role; + + private OFRoleManager roleManager; + /** * Initialization of services and msgSpy counter */ public void initialization() { messageCountProvider = new MessageSpyCounterImpl(); extensionConverterManager = new ExtensionConverterManagerImpl(); + roleManager = new OFRoleManager(OFSessionUtil.getSessionManager()); this.registerProvider(); } @@ -141,4 +149,38 @@ public class OpenflowPluginProvider implements BindingAwareProvider, AutoCloseab public ExtensionConverterRegistrator getExtensionConverterRegistrator() { return extensionConverterManager; } + + /** + * @param role of instance + */ + public void setRole(OfpRole role) { + this.role = role; + } + + /** + * @param newRole + */ + public void fireRoleChange(OfpRole newRole) { + if (!role.equals(newRole)) { + LOG.debug("my role was chaged from {} to {}", role, newRole); + role = newRole; + switch (role) { + case BECOMEMASTER: + //TODO: implement appropriate action + roleManager.manageRoleChange(role); + break; + case BECOMESLAVE: + //TODO: implement appropriate action + roleManager.manageRoleChange(role); + break; + case NOCHANGE: + //TODO: implement appropriate action + roleManager.manageRoleChange(role); + break; + default: + LOG.warn("role not supported: {}", role); + break; + } + } + } }