////uncomment to compile in eclipse (and last line)
//// these are standard imports, can be commented out in script but needed in eclipse
//import edu.internet2.middleware.grouper.*;
//import edu.internet2.middleware.grouper.misc.*;
//import edu.internet2.middleware.grouper.attr.*;
//import edu.internet2.middleware.grouper.attr.assign.*;
//import edu.internet2.middleware.grouper.attr.finder.*;
//import edu.internet2.middleware.grouper.util.*;
//import java.util.*;
//import edu.internet2.middleware.grouper.app.gsh.template.*;
import edu.internet2.middleware.grouper.app.reports.*;
//public class Test4 {
//
// public static void main(String[] args) {
//
// GrouperStartup.startup();
//
// //input of project name, alphanumeric, start with lower.
// String gsh_input_projectSystemName = "darStaff";
//
// GrouperSession gsh_builtin_grouperSession = GrouperSession.startRootSession();
// GshTemplateOutput gsh_builtin_gshTemplateOutput = new GshTemplateOutput();
String projectStemName = "penn:isc:ts:networking:service:sraVpn:service:" + gsh_input_projectSystemName;
Stem projectFolder = StemFinder.findByName(gsh_builtin_grouperSession, projectStemName , false);
if (projectFolder == null) {
gsh_builtin_gshTemplateOutput.addValidationLine("gsh_input_projectSystemName",
"Error: project name cannot be found '" + projectStemName + "', should be a system extension (ID) of a folder in the VPN service folder!");
gsh_builtin_gshTemplateOutput.assignIsError(true);
GrouperUtil.gshReturn();
}
// 0. remove the report
AttributeDefName attributeDefName = AttributeDefNameFinder.findByName("penn:etc:reportConfig:reportConfigMarker", true);
Set<AttributeAssign> attributeAssigns = new AttributeAssignFinder().addOwnerStemId(projectFolder.getId()).addAttributeDefNameId(attributeDefName.getId()).findAttributeAssigns();
for (AttributeAssign attributeAssign : GrouperUtil.nonNull(attributeAssigns)) {
GrouperReportConfigurationBean reportConfigBean = GrouperReportConfigService.getGrouperReportConfigBean(attributeAssign.getId());
try {GrouperReportConfigService.deleteGrouperReportConfig(projectFolder, reportConfigBean);} catch (org.quartz.SchedulerException se) {throw new RuntimeException("error", se);}
gsh_builtin_gshTemplateOutput.addOutputLine("Removed report: " + attributeAssign.getId());
}
// 1. Obliterate project folder
STEM_DELETE: {
StemSave projectFolderSave = new StemSave().assignName(projectStemName).assignSaveMode(SaveMode.DELETE);
projectFolderSave.save();
gsh_builtin_gshTemplateOutput.addOutputLine("Project folder deleted: " + projectStemName);
}
String ownersGroupName = projectStemName + ":" + gsh_input_projectSystemName + "SraVpnOwners";
String ownersAttestationEmailAddress = ownersGroupName + "@grouper";
// 2. Remove from grouper.properties that the super admins group can receive email
EMAIL_DELETE: {
GrouperEmail.removeAllowEmailToGroup(ownersAttestationEmailAddress );
gsh_builtin_gshTemplateOutput.addOutputLine("Removed the configuration to allow emailing the " + gsh_input_projectSystemName + " Owners");
}
// done!
gsh_builtin_gshTemplateOutput.addOutputLine("Finished removing VPN project: " + gsh_input_projectSystemName);
// }
//
//}