def METHOD_NAME(server_id, action_id, dry_run=0):
    log_debug(3, server_id, action_id)
    if dry_run:
        raise ShadowAction("dry run requested - skipping")
    kickstart_session_id = server_kickstart.get_kickstart_session_id(server_id,
                                                                     action_id)
    if kickstart_session_id is None:
        raise InvalidAction("Could not find kickstart session ID")
    row = server_kickstart.get_kickstart_session_info(kickstart_session_id, server_id)
    deploy_configs = (row['deploy_configs'] == 'Y')
    ks_package_profile = server_kickstart.get_kisckstart_session_package_profile(kickstart_session_id)
    # if the session doesn't have a pkg profile, try from the ks profile itself
    if not ks_package_profile:
        ks_package_profile = server_kickstart.get_kickstart_profile_package_profile(kickstart_session_id)
    if not ks_package_profile:
        log_debug(4, "No kickstart package profile")
        # No profile to bring this system to
        if deploy_configs:
            # We have to deploy configs, so pass in a server profile
            server_profile = server_kickstart.get_server_package_profile(server_id)
        else:
            # No configs to be deployed
            server_profile = None
        server_kickstart.schedule_config_deploy(server_id,
                                                action_id, kickstart_session_id, server_profile=server_profile)
        raise ShadowAction("Package sync not scheduled, missing kickstart "
                           "package profile; proceeding with configfiles.deploy")
    server_profile = server_kickstart.get_server_package_profile(server_id)
    installs, removes = server_packages.package_delta(server_profile,
                                                      ks_package_profile)
    if not (installs or removes):
        log_debug(4, "No packages to be installed/removed")
        if not deploy_configs:
            server_profile = None
        server_kickstart.schedule_config_deploy(server_id,
                                                action_id, kickstart_session_id, server_profile=None)
        raise ShadowAction("Package sync not scheduled, nothing to do")
    log_debug(4, "Scheduling kickstart delta")
    server_kickstart.schedule_kickstart_delta(server_id,
                                              kickstart_session_id, installs, removes)
    raise ShadowAction("Package sync scheduled")