/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller.impl.vnxunity;
import java.util.concurrent.atomic.AtomicReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.volumecontroller.BlockStorageDevice;
import com.emc.storageos.volumecontroller.impl.ControllerServiceImpl;
import com.emc.storageos.volumecontroller.impl.vnxe.VNXeMaskingOrchestrator;
public class VNXUnityMaskingOrchestrator extends VNXeMaskingOrchestrator {
private static final AtomicReference<BlockStorageDevice> VNXUNITY_BLOCK_DEVICE = new AtomicReference<BlockStorageDevice>();
public static final String VNXUNITY_DEVICE = "vnxunityDevice";
public static final String DEFAULT_LABEL = "Default";
@Override
public BlockStorageDevice getDevice() {
BlockStorageDevice device = VNXUNITY_BLOCK_DEVICE.get();
synchronized (VNXUNITY_BLOCK_DEVICE) {
if (device == null) {
device = (BlockStorageDevice) ControllerServiceImpl.getBean(VNXUNITY_DEVICE);
VNXUNITY_BLOCK_DEVICE.compareAndSet(null, device);
}
}
return device;
}
}