/* * Copyright (c) 2008-2011 EMC Corporation * All Rights Reserved */ package com.emc.storageos.api.service.impl; import com.emc.storageos.api.service.ProvisioningService; import com.emc.storageos.coordinator.client.service.CoordinatorClient; import com.emc.storageos.coordinator.client.beacon.ServiceBeacon; import com.emc.storageos.api.service.impl.resource.utils.OpenStackSynchronizationTask; import com.emc.storageos.db.client.model.AuthnProvider; import com.emc.storageos.security.AbstractSecuredWebServer; import com.emc.storageos.security.authentication.AuthSvcEndPointLocator; import com.emc.storageos.security.authentication.StorageOSUserRepository; import com.emc.storageos.security.validator.Validator; import org.springframework.beans.factory.annotation.Autowired; /** * Provisioning service default implementation */ public class ProvisioningServiceImpl extends AbstractSecuredWebServer implements ProvisioningService { @Autowired private CoordinatorClient _coordinator; @Autowired private AuthSvcEndPointLocator _authSvcEndPointLocator; @Autowired StorageOSUserRepository _repository; @Autowired ServiceBeacon _svcBeacon; private OpenStackSynchronizationTask _openStackSynchronizationTask; public void setOpenStackSynchronizationTask(OpenStackSynchronizationTask openStackSynchronizationTask) { this._openStackSynchronizationTask = openStackSynchronizationTask; } @Override public synchronized void start() throws Exception { initValidator(); initServer(); _server.start(); _svcBeacon.start(); // Launch OpenStack synchronization task if Keystone Authentication Provider exists. AuthnProvider keystoneProvider = _openStackSynchronizationTask.getKeystoneProvider(); if (keystoneProvider != null && keystoneProvider.getAutoRegCoprHDNImportOSProjects()) { _openStackSynchronizationTask.start(_openStackSynchronizationTask.getTaskInterval(keystoneProvider)); } } private void initValidator() { Validator.setCoordinator(_coordinator); Validator.setAuthSvcEndPointLocator(_authSvcEndPointLocator); Validator.setStorageOSUserRepository(_repository); } @Override public synchronized void stop() throws Exception { _server.stop(); _dbClient.stop(); AuthnProvider keystoneProvider = _openStackSynchronizationTask.getKeystoneProvider(); if (keystoneProvider != null && keystoneProvider.getAutoRegCoprHDNImportOSProjects()) { _openStackSynchronizationTask.stop(); } } }