001package com.identityworksllc.iiq.common.service;
002
003import sailpoint.api.SailPointContext;
004import sailpoint.object.Attributes;
005import sailpoint.object.ServiceDefinition;
006import sailpoint.tools.GeneralException;
007import sailpoint.tools.Util;
008
009/**
010 * Utilities for services
011 */
012public class ServiceUtils {
013    /**
014     * Utilities for services
015     * @param context The context of this service
016     * @param target The target of this service
017     * @param lastStart The last start timestamp of this service
018     * @throws GeneralException
019     */
020    public static void storeTimestamps(SailPointContext context, ServiceDefinition target, long lastStart) throws GeneralException {
021        ServiceDefinition reloaded = context.getObjectById(ServiceDefinition.class, target.getId());
022        Attributes<String, Object> attributes = reloaded.getAttributes();
023        if (attributes == null) {
024            attributes = new Attributes<>();
025            reloaded.setAttributes(attributes);
026        }
027        attributes.put("lastStart", lastStart);
028        attributes.put("lastStop", System.currentTimeMillis());
029        attributes.put("lastHost", Util.getHostName());
030        context.saveObject(reloaded);
031        context.commitTransaction();
032    }
033
034    /**
035     * Private utility constructor
036     */
037    private ServiceUtils() {
038
039    }
040}