All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob Maven / Gradle / Ivy

There is a newer version: 5.13.5
Show newest version
package edu.internet2.middleware.grouper.app.provisioning;

import org.quartz.DisallowConcurrentExecution;

import edu.internet2.middleware.grouper.GrouperSession;
import edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig;
import edu.internet2.middleware.grouper.app.loader.GrouperLoaderType;
import edu.internet2.middleware.grouper.app.loader.OtherJobBase;
import edu.internet2.middleware.grouper.app.loader.db.Hib3GrouperLoaderLog;
import edu.internet2.middleware.grouper.exception.GrouperSessionException;
import edu.internet2.middleware.grouper.misc.GrouperSessionHandler;

@DisallowConcurrentExecution
public class GrouperProvisioningFullSyncJob extends OtherJobBase {
  
  @Override
  public OtherJobOutput run(final OtherJobInput otherJobInput) {
    
    GrouperSession.internal_callbackRootGrouperSession(new GrouperSessionHandler() {
      
      @Override
      public Object callback(GrouperSession grouperSession) throws GrouperSessionException {
        
        String jobName = otherJobInput.getJobName();
        String daemonName = jobName.substring(GrouperLoaderType.GROUPER_OTHER_JOB_PREFIX.length(), jobName.length());
        String key = "otherJob."+daemonName+".provisionerConfigId";
        String provisionerConfigId = GrouperLoaderConfig.retrieveConfig().propertyValueString(key);
        final Hib3GrouperLoaderLog hib3GrouperLoaderLog = otherJobInput.getHib3GrouperLoaderLog();
        
        runFullSync(provisionerConfigId, hib3GrouperLoaderLog);

        return null;
      }
    });
    
    return null;
  }

  public static void runFullSync(String provisionerConfigId,
      final Hib3GrouperLoaderLog hib3GrouperLoaderLog) {
    final GrouperProvisioner grouperProvisioner = GrouperProvisioner.retrieveProvisioner(provisionerConfigId);
    grouperProvisioner.retrieveGrouperProvisioningOutput().setHib3GrouperLoaderLog(hib3GrouperLoaderLog);
    grouperProvisioner.getGcGrouperSyncHeartbeat().insertHeartbeatLogic(new Runnable() {

      @Override
      public void run() {
        
        GrouperProvisioningOutput grouperProvisioningOutput = grouperProvisioner.retrieveGrouperProvisioningOutput();
        grouperProvisioningOutput.copyToHib3LoaderLog();
        hib3GrouperLoaderLog.store();
      }
      
    });

    grouperProvisioner.setJobName(hib3GrouperLoaderLog.getJobName());
    GrouperProvisioningOutput grouperProvisioningOutput = grouperProvisioner.provision(GrouperProvisioningType.fullProvisionFull);
    grouperProvisioningOutput.copyToHib3LoaderLog();
    hib3GrouperLoaderLog.store();
  }

  public static void main(String[] args) {
    
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy