/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.validators.smis.vnx; import com.emc.storageos.volumecontroller.impl.validators.ValidatorLogger; import com.emc.storageos.volumecontroller.impl.validators.contexts.ExportMaskValidationContext; import com.emc.storageos.volumecontroller.impl.validators.smis.AbstractSMISValidator; import com.emc.storageos.volumecontroller.impl.validators.smis.AbstractSMISValidatorFactory; import com.emc.storageos.volumecontroller.impl.validators.smis.common.ExportMaskInitiatorsValidator; import com.emc.storageos.volumecontroller.impl.validators.smis.common.ExportMaskVolumesValidator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class VnxSystemValidatorFactory extends AbstractSMISValidatorFactory { private static final Logger log = LoggerFactory.getLogger(VnxSystemValidatorFactory.class); @Override public ValidatorLogger createValidatorLogger(String validatedObjectName, String storageSystemName) { return new ValidatorLogger(log, validatedObjectName, storageSystemName); } @Override public AbstractSMISValidator createExportMaskVolumesValidator(ExportMaskValidationContext ctx) { return new ExportMaskVolumesValidator(ctx.getStorage(), ctx.getExportMask(), ctx.getBlockObjects()); } @Override public AbstractSMISValidator createExportMaskInitiatorValidator(ExportMaskValidationContext ctx) { // Check to see if validation makes sense to perform for this export mask if (performInitiatorValidation(ctx.getExportMask())) { return new ExportMaskInitiatorsValidator(ctx.getStorage(), ctx.getExportMask(), ctx.getInitiators()); } return truthyValidator; } }