Package org.sdnplatform.sync.internal.config

Source Code of org.sdnplatform.sync.internal.config.PropertyCCProvider

package org.sdnplatform.sync.internal.config;

import java.util.List;
import java.util.Map;

import org.sdnplatform.sync.error.SyncException;
import org.sdnplatform.sync.internal.SyncManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

import net.floodlightcontroller.core.module.FloodlightModuleContext;

public class PropertyCCProvider implements IClusterConfigProvider {
    protected static Logger logger =
            LoggerFactory.getLogger(PropertyCCProvider.class.getName());

    private Map<String, String> config;

    @Override
    public ClusterConfig getConfig() throws SyncException {
        if (!config.containsKey("nodes") || !config.containsKey("thisNode"))
            throw new SyncException("Configuration properties nodes or " +
                    "thisNode not set");

        String keyStorePath = config.get("keyStorePath");
        String keyStorePassword = config.get("keyStorePassword");
        AuthScheme authScheme = AuthScheme.NO_AUTH;
        try {
            authScheme = AuthScheme.valueOf(config.get("authScheme"));
        } catch (Exception e) {}
       
        Short thisNodeId;
        try {
            thisNodeId = Short.parseShort(config.get("thisNode"));
        } catch (NumberFormatException e) {
            throw new SyncException("Failed to parse thisNode " +
                    "node ID: " + config.get("thisNode"), e);
        }
        try {
            ObjectMapper mapper = new ObjectMapper();
            List<Node> nodes =
                    mapper.readValue(config.get("nodes"),
                                     new TypeReference<List<Node>>() { });
            return new ClusterConfig(nodes, thisNodeId,
                                     authScheme,
                                     keyStorePath,
                                     keyStorePassword);
        } catch (Exception e) {
            throw new SyncException("Could not update " +
                    "configuration", e);
        }
    }   
   
    @Override
    public void init(SyncManager syncManager,
                     FloodlightModuleContext context) {
        this.config = context.getConfigParams(syncManager);
    }
}
TOP

Related Classes of org.sdnplatform.sync.internal.config.PropertyCCProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.