/*
* Copyright (c) 2012-2015 iWave Software LLC
* All Rights Reserved
*/
package com.emc.sa.service.vmware.file;
import static com.emc.sa.service.ServiceParams.DATACENTER;
import static com.emc.sa.service.ServiceParams.DATASTORE_NAME;
import static com.emc.sa.service.ServiceParams.PROJECT;
import static com.emc.sa.service.ServiceParams.VCENTER;
import java.net.URI;
import com.emc.sa.engine.bind.Param;
import com.emc.sa.engine.service.Service;
import com.emc.sa.service.vipr.ViPRService;
import com.emc.sa.service.vmware.VMwareSupport;
import com.emc.storageos.db.client.model.VcenterDataCenter;
import com.emc.storageos.model.file.FileShareRestRep;
import com.vmware.vim25.mo.Datastore;
@Service("VMware-DeleteNfsDatastore")
public class DeleteNfsDatastoreService extends ViPRService {
@Param(PROJECT)
protected URI project;
@Param(VCENTER)
protected URI vcenterId;
@Param(DATACENTER)
protected URI datacenterId;
@Param(DATASTORE_NAME)
protected String datastoreName;
protected Datastore datastore;
protected FileShareRestRep fileSystem;
protected VcenterDataCenter datacenter;
protected VMwareSupport vmware = new VMwareSupport();
@Override
public void init() throws Exception {
super.init();
vmware.connect(vcenterId);
datacenter = vmware.getDatacenter(datacenterId);
}
@Override
public void precheck() throws Exception {
super.precheck();
datastore = vmware.getDatastore(datacenter.getLabel(), datastoreName);
vmware.verifyDatastoreForRemoval(datastore);
fileSystem = vmware.findFileSystemWithDatastore(project, datacenterId, datastoreName);
}
@Override
public void execute() throws Exception {
vmware.deleteNfsDatastore(fileSystem, datacenterId, datastore);
}
@Override
public void destroy() {
super.destroy();
vmware.disconnect();
}
}