Package org.platformlayer.ops.networks

Source Code of org.platformlayer.ops.networks.IpsecHelpers

package org.platformlayer.ops.networks;

import javax.inject.Inject;

import org.platformlayer.core.model.ItemBase;
import org.platformlayer.core.model.ManagedItemState;
import org.platformlayer.core.model.Secret;
import org.platformlayer.ops.OpsException;
import org.platformlayer.ops.helpers.ProviderHelper;
import org.platformlayer.ops.helpers.ProviderHelper.ProviderOf;

public class IpsecHelpers {
  @Inject
  ProviderHelper providerHelper;

  public Secret getIpsecSecret() throws OpsException {
    Secret secret = null;

    for (ProviderOf<HasIpsecPolicy> ipsecPolicyProvider : providerHelper.listItemsProviding(HasIpsecPolicy.class)) {
      ItemBase item = ipsecPolicyProvider.getItem();

      if (item.getState() != ManagedItemState.ACTIVE) {
        continue;
      }

      HasIpsecPolicy ipsec = ipsecPolicyProvider.get();

      if (secret != null) {
        throw new IllegalStateException("Multiple IPSEC policies found");
      }

      secret = ipsec.getIpsecPreSharedKey(item);
      if (secret == null) {
        // Should we allow this?
        throw new IllegalStateException();
      }
    }

    if (secret == null) {
      throw new OpsException("Ipsec policy not found");
    }

    return secret;
  }

}
TOP

Related Classes of org.platformlayer.ops.networks.IpsecHelpers

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.