/* * Copyright 2014 by SCSK Corporation. * * This file is part of PrimeCloud Controller(TM). * * PrimeCloud Controller(TM) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * PrimeCloud Controller(TM) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PrimeCloud Controller(TM). If not, see <http://www.gnu.org/licenses/>. */ package jp.primecloud.auto.nifty.process; import jp.primecloud.auto.common.constant.PCCConstant; import jp.primecloud.auto.config.Config; import jp.primecloud.auto.dao.crud.NiftyCertificateDao; import jp.primecloud.auto.dao.crud.PlatformDao; import jp.primecloud.auto.dao.crud.PlatformNiftyDao; import jp.primecloud.auto.entity.crud.NiftyCertificate; import jp.primecloud.auto.entity.crud.Platform; import jp.primecloud.auto.entity.crud.PlatformNifty; import jp.primecloud.auto.exception.AutoException; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import com.nifty.cloud.sdk.ClientConfiguration; import com.nifty.cloud.sdk.auth.BasicCredentials; import com.nifty.cloud.sdk.auth.Credentials; import com.nifty.cloud.sdk.disk.NiftyDiskClient; import com.nifty.cloud.sdk.server.NiftyServerClient; /** * <p> * TODO: クラスコメントを記述 * </p> * */ public class NiftyProcessClientFactory { protected NiftyCertificateDao niftyCertificateDao; protected PlatformNiftyDao platformNiftyDao; protected PlatformDao platformDao; public NiftyProcessClient createNiftyProcessClient(Long userNo, Long platformNo, String clientType) { Platform platform =platformDao.read(platformNo); if (platform == null) { throw new AutoException("EPROCESS-000004", platformNo); } return createNiftyProcessClient(userNo, platform, clientType); } protected NiftyProcessClient createNiftyProcessClient(Long userNo, Platform platform, String clientType) { if (PCCConstant.PLATFORM_TYPE_NIFTY.equals(platform.getPlatformType()) == false) { throw new AutoException("EPROCESS-000008", platform.getPlatformNo()); } // NiftyCertificateを取得 NiftyCertificate niftyCertificate = niftyCertificateDao.read(userNo, platform.getPlatformNo()); if (niftyCertificate == null) { throw new AutoException("EPROCESS-000009", userNo, platform.getPlatformNo()); } // 指定されたAccessKeyとSecretAccessKeyから認証情報インスタンスを生成します。 Credentials credential = new BasicCredentials(niftyCertificate.getNiftyAccessId(), niftyCertificate.getNiftySecretKey()); // 設定ファイル ClientConfiguration config = new ClientConfiguration(); PlatformNifty niftyPlatform = platformNiftyDao.read(platform.getPlatformNo()); String endpoint = niftyPlatform.getUrl(); if (StringUtils.isNotBlank(endpoint)) { config.setConfigEndpoint(endpoint); } NiftyProcessClient niftyProcessClient = null; if (PCCConstant.NIFTYCLIENT_TYPE_SERVER.equals(clientType)) { NiftyServerClient niftyServerClient = new NiftyServerClient(credential, config); niftyProcessClient = new NiftyProcessClient(niftyServerClient, platform.getPlatformNo()); } else if (PCCConstant.NIFTYCLIENT_TYPE_DISK.equals(clientType)) { NiftyDiskClient niftyDiskClient = new NiftyDiskClient(credential, config); niftyProcessClient = new NiftyProcessClient(niftyDiskClient, platform.getPlatformNo()); } else { return null; } // describeInterval String describeInterval = Config.getProperty("aws.describeInterval"); niftyProcessClient.setDescribeInterval(NumberUtils.toInt(describeInterval, 15)); return niftyProcessClient; } /** * niftyCertificateDaoを設定します。 * * @param niftyCertificateDao niftyCertificateDao */ public void setNiftyCertificateDao(NiftyCertificateDao niftyCertificateDao) { this.niftyCertificateDao = niftyCertificateDao; } /** * platformNiftyDaoを設定します。 * * @param platformNiftyDao platformNiftyDao */ public void setPlatformNiftyDao(PlatformNiftyDao platformNiftyDao) { this.platformNiftyDao = platformNiftyDao; } /** * platformDaoを設定します。 * * @param platformDao platformDao */ public void setPlatformDao(PlatformDao platformDao) { this.platformDao = platformDao; } }