/* * Copyright (c) 2016 EMC * All Rights Reserved */ package com.emc.sa.service.vipr.file.tasks; import java.net.URI; import com.emc.sa.service.vipr.tasks.WaitForTasks; import com.emc.storageos.model.file.FileCopy; import com.emc.storageos.model.file.FileReplicationParam; import com.emc.storageos.model.file.FileShareRestRep; import com.emc.vipr.client.Tasks; public class FailoverFileSystem extends WaitForTasks<FileShareRestRep> { public static final String REMOTE_TARGET = "remote"; private URI failoverSource; private URI failoverTarget; private String type; private boolean replicationConf; public FailoverFileSystem(URI failoverSource, URI failoverTarget, String type, boolean replicationConf) { this.failoverSource = failoverSource; this.failoverTarget = failoverTarget; this.type = type; this.replicationConf = replicationConf; provideDetailArgs(failoverSource, failoverTarget, type); } @Override protected Tasks<FileShareRestRep> doExecute() throws Exception { FileCopy copy = new FileCopy(); copy.setType(type); copy.setCopyID(failoverTarget); FileReplicationParam param = new FileReplicationParam(); param.getCopies().add(copy); param.setReplicateConfiguration(replicationConf); return getClient().fileSystems().failover(failoverSource, param); } }