/**
* Copyright (C) 2015 Orange
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.francetelecom.clara.cloud.mocks;
import java.util.Collection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.francetelecom.clara.cloud.commons.BusinessException;
import com.francetelecom.clara.cloud.coremodel.Application;
import com.francetelecom.clara.cloud.coremodel.ApplicationRelease;
import com.francetelecom.clara.cloud.coremodel.PaasUser;
import com.francetelecom.clara.cloud.logicalmodel.samplecatalog.SampleAppProperties;
import com.francetelecom.clara.cloud.scalability.ManageScalability;
import com.francetelecom.clara.cloud.scalability.helper.ScalabilityHelper;
/**
* ManageScalabilityMock
* mocked version of scalability service
* Sample usage :
* Last update : $LastChangedDate$
*
* @author : $Author$
* @version : $Revision$
*/
@Service("manageScalability")
public class ManageScalabilityMock implements ManageScalability {
/**
* paas managers
*/
@Autowired(required = true)
private ManagePaasUserMock managePaasUserMock;
@Autowired(required = true)
private ManageApplicationMock manageApplicationMock;
@Autowired(required = true)
private ManageApplicationReleaseMock manageApplicationReleaseMock;
@Autowired(required = true)
private ManageLogicalDeploymentMock manageLogicalDeploymentMock;
@Autowired(required = true)
private ManageEnvironmentMock manageEnvironmentMock;
@Autowired(required = true)
private SampleAppProperties sampleAppProperties;
private ScalabilityHelper helper;
//~setters (spring requirement)
public void setManagePaasUserMock(ManagePaasUserMock managePaasUserMock) {
this.managePaasUserMock = managePaasUserMock;
}
public void setManageApplicationMock(ManageApplicationMock manageApplicationMock) {
this.manageApplicationMock = manageApplicationMock;
}
public void setManageApplicationReleaseMock(ManageApplicationReleaseMock manageApplicationReleaseMock) {
this.manageApplicationReleaseMock = manageApplicationReleaseMock;
}
public void setManageLogicalDeploymentMock(ManageLogicalDeploymentMock manageLogicalDeploymentMock) {
this.manageLogicalDeploymentMock = manageLogicalDeploymentMock;
}
public void setManageEnvironmentMock(ManageEnvironmentMock manageEnvironmentMock) {
this.manageEnvironmentMock = manageEnvironmentMock;
}
public void setSampleAppProperties(SampleAppProperties sampleAppProperties) {
this.sampleAppProperties = sampleAppProperties;
}
private boolean isFakeWorld() {
return true;
}
private ScalabilityHelper getHelper() {
if (this.helper == null) {
boolean isFakeWorld = isFakeWorld();
this.helper = new ScalabilityHelper(managePaasUserMock,
manageApplicationMock,
manageApplicationReleaseMock,
manageLogicalDeploymentMock,
manageEnvironmentMock,
sampleAppProperties,
isFakeWorld);
}
return this.helper;
}
@Override
public void razData() throws BusinessException {
getHelper().razData(false);
}
@Override
public void razDataWithActivation() throws BusinessException {
getHelper().razData(true);
}
@Override
public Collection<PaasUser> createPaasUsers(String namePrefix, int nbToCreate) {
return getHelper().createPaasUsers(namePrefix, nbToCreate);
}
@Override
public Collection<PaasUser> createTeam(String namePrefix) {
return getHelper().createTeam(namePrefix);
}
@Override
public Application populateSimpleTestPhase(PaasUser author, boolean createEnv) throws BusinessException {
return getHelper().populateSimpleTestPhase(author, createEnv);
}
@Override
public Collection<ApplicationRelease> populate(String pattern, String teamName, int nbApp, int nbReleasePerApp, int nbEnvPerRelease) throws BusinessException {
return getHelper().populate(pattern, teamName, nbApp, nbReleasePerApp, nbEnvPerRelease);
}
public Collection<ApplicationRelease> populatePortalPhase(int nbApp, int nbReleasePerApp, int nbEnvPerRelease) throws BusinessException {
return populate("GDSNN", "portalTest", nbApp, nbReleasePerApp, nbEnvPerRelease);
}
}