Class ProcessService

java.lang.Object
com.gooddata.sdk.service.AbstractService
com.gooddata.sdk.service.dataload.processes.ProcessService

public class ProcessService
extends AbstractService
Service to manage dataload processes and process executions.
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.gooddata.sdk.service.AbstractService

    AbstractService.OutputStreamResponseExtractor
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static org.springframework.web.util.UriTemplate PROCESS_TEMPLATE  
    static org.springframework.web.util.UriTemplate PROCESSES_TEMPLATE  
    static org.springframework.web.util.UriTemplate SCHEDULE_TEMPLATE  
    static org.springframework.web.util.UriTemplate SCHEDULES_TEMPLATE  
    static org.springframework.web.util.UriTemplate USER_PROCESSES_TEMPLATE  

    Fields inherited from class com.gooddata.sdk.service.AbstractService

    mapper, restTemplate
  • Constructor Summary

    Constructors 
    Constructor Description
    ProcessService​(org.springframework.web.client.RestTemplate restTemplate, AccountService accountService, DataStoreService dataStoreService, GoodDataSettings settings)
    Sets RESTful HTTP Spring template.
  • Method Summary

    Modifier and Type Method Description
    com.gooddata.sdk.model.dataload.processes.DataloadProcess createProcess​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
    Create new process without data.
    com.gooddata.sdk.model.dataload.processes.DataloadProcess createProcess​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.DataloadProcess process, java.io.File processData)
    Create new process with given data by given project.
    FutureResult<com.gooddata.sdk.model.dataload.processes.DataloadProcess> createProcessFromAppstore​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
    Create new process from appstore.
    com.gooddata.sdk.model.dataload.processes.Schedule createSchedule​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.Schedule schedule)
    Create new schedule with given data by given project.
    FutureResult<com.gooddata.sdk.model.dataload.processes.ProcessExecutionDetail> executeProcess​(com.gooddata.sdk.model.dataload.processes.ProcessExecution execution)
    Run given execution under given process
    FutureResult<com.gooddata.sdk.model.dataload.processes.ScheduleExecution> executeSchedule​(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
    Executes given schedule
    void getExecutionLog​(com.gooddata.sdk.model.dataload.processes.ProcessExecutionDetail executionDetail, java.io.OutputStream outputStream)
    Get process execution log
    com.gooddata.sdk.model.dataload.processes.DataloadProcess getProcessById​(com.gooddata.sdk.model.project.Project project, java.lang.String id)
    Get process by given id and project.
    com.gooddata.sdk.model.dataload.processes.DataloadProcess getProcessByUri​(java.lang.String uri)
    Get process by given URI.
    void getProcessSource​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process, java.io.OutputStream outputStream)
    Get process source data.
    com.gooddata.sdk.model.dataload.processes.Schedule getScheduleById​(com.gooddata.sdk.model.project.Project project, java.lang.String id)
    Get schedule by given id and project.
    com.gooddata.sdk.model.dataload.processes.Schedule getScheduleByUri​(java.lang.String uri)
    Get schedule by given URI.
    java.util.Collection<com.gooddata.sdk.model.dataload.processes.DataloadProcess> listProcesses​(com.gooddata.sdk.model.project.Project project)
    Get list of processes by given project.
    com.gooddata.sdk.common.collections.PageBrowser<com.gooddata.sdk.model.dataload.processes.Schedule> listSchedules​(com.gooddata.sdk.model.project.Project project)
    Get browser of schedules by given project.
    com.gooddata.sdk.common.collections.PageBrowser<com.gooddata.sdk.model.dataload.processes.Schedule> listSchedules​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.common.collections.PageRequest startPage)
    Get defined page of paged list of schedules by given project.
    java.util.Collection<com.gooddata.sdk.model.dataload.processes.DataloadProcess> listUserProcesses()
    Get list of current user processes by given user account.
    void removeProcess​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
    Delete given process
    void removeSchedule​(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
    Delete given schedule
    com.gooddata.sdk.model.dataload.processes.DataloadProcess updateProcess​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process, java.io.File processData)
    Update process with given data by given project.
    FutureResult<com.gooddata.sdk.model.dataload.processes.DataloadProcess> updateProcessFromAppstore​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
    Update process with data from appstore by given project.
    com.gooddata.sdk.model.dataload.processes.Schedule updateSchedule​(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
    Update the given schedule

    Methods inherited from class com.gooddata.sdk.service.AbstractService

    extractData

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • SCHEDULE_TEMPLATE

      public static final org.springframework.web.util.UriTemplate SCHEDULE_TEMPLATE
    • PROCESS_TEMPLATE

      public static final org.springframework.web.util.UriTemplate PROCESS_TEMPLATE
    • SCHEDULES_TEMPLATE

      public static final org.springframework.web.util.UriTemplate SCHEDULES_TEMPLATE
    • PROCESSES_TEMPLATE

      public static final org.springframework.web.util.UriTemplate PROCESSES_TEMPLATE
    • USER_PROCESSES_TEMPLATE

      public static final org.springframework.web.util.UriTemplate USER_PROCESSES_TEMPLATE
  • Constructor Details

    • ProcessService

      public ProcessService​(org.springframework.web.client.RestTemplate restTemplate, AccountService accountService, DataStoreService dataStoreService, GoodDataSettings settings)
      Sets RESTful HTTP Spring template. Should be called from constructor of concrete service extending this abstract one.
      Parameters:
      restTemplate - RESTful HTTP Spring template
      accountService - service to access accounts
      dataStoreService - service for upload process data
      settings - settings
  • Method Details

    • createProcess

      public com.gooddata.sdk.model.dataload.processes.DataloadProcess createProcess​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.DataloadProcess process, java.io.File processData)
      Create new process with given data by given project. Process must have null path to prevent clashes with deploying from appstore.
      Parameters:
      project - project to which the process belongs
      process - to create
      processData - process data to upload
      Returns:
      created process
    • createProcess

      public com.gooddata.sdk.model.dataload.processes.DataloadProcess createProcess​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
      Create new process without data. Only some specific types of processes can be created without data. Process must have null path to prevent clashes with deploying from appstore.
      Parameters:
      project - project to which the process belongs
      process - to create
      Returns:
      created process
    • createProcessFromAppstore

      public FutureResult<com.gooddata.sdk.model.dataload.processes.DataloadProcess> createProcessFromAppstore​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
      Create new process from appstore. Process must have set path field to valid appstore path in order to deploy from appstore. This method is asynchronous, because when deploying from appstore, deployment worker can be triggered.
      Parameters:
      project - project to which the process belongs
      process - to create
      Returns:
      created process
    • updateProcess

      public com.gooddata.sdk.model.dataload.processes.DataloadProcess updateProcess​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process, java.io.File processData)
      Update process with given data by given project. Process must have null path to prevent clashes with deploying from appstore.
      Parameters:
      process - to create
      processData - process data to upload
      Returns:
      updated process
    • updateProcessFromAppstore

      public FutureResult<com.gooddata.sdk.model.dataload.processes.DataloadProcess> updateProcessFromAppstore​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
      Update process with data from appstore by given project. Process must have set path field to valid appstore path in order to deploy from appstore. This method is asynchronous, because when deploying from appstore, deployment worker can be triggered.
      Parameters:
      process - to update
      Returns:
      updated process
    • getProcessByUri

      public com.gooddata.sdk.model.dataload.processes.DataloadProcess getProcessByUri​(java.lang.String uri)
      Get process by given URI.
      Parameters:
      uri - process uri
      Returns:
      found process
      Throws:
      ProcessNotFoundException - when the process doesn't exist
    • getProcessById

      public com.gooddata.sdk.model.dataload.processes.DataloadProcess getProcessById​(com.gooddata.sdk.model.project.Project project, java.lang.String id)
      Get process by given id and project.
      Parameters:
      project - project to which the process belongs
      id - process id
      Returns:
      found process
      Throws:
      ProcessNotFoundException - when the process doesn't exist
    • listProcesses

      public java.util.Collection<com.gooddata.sdk.model.dataload.processes.DataloadProcess> listProcesses​(com.gooddata.sdk.model.project.Project project)
      Get list of processes by given project.
      Parameters:
      project - project of processes
      Returns:
      list of found processes or empty list
    • listUserProcesses

      public java.util.Collection<com.gooddata.sdk.model.dataload.processes.DataloadProcess> listUserProcesses()
      Get list of current user processes by given user account.
      Returns:
      list of found processes or empty list
    • removeProcess

      public void removeProcess​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process)
      Delete given process
      Parameters:
      process - to delete
    • getProcessSource

      public void getProcessSource​(com.gooddata.sdk.model.dataload.processes.DataloadProcess process, java.io.OutputStream outputStream)
      Get process source data. Source data are fetched as zip and written to given stream.
      Parameters:
      process - process to fetch data of
      outputStream - stream where to write fetched data
    • getExecutionLog

      public void getExecutionLog​(com.gooddata.sdk.model.dataload.processes.ProcessExecutionDetail executionDetail, java.io.OutputStream outputStream)
      Get process execution log
      Parameters:
      executionDetail - execution to log of
      outputStream - stream to write the log to
    • executeProcess

      public FutureResult<com.gooddata.sdk.model.dataload.processes.ProcessExecutionDetail> executeProcess​(com.gooddata.sdk.model.dataload.processes.ProcessExecution execution)
      Run given execution under given process
      Parameters:
      execution - to run
      Returns:
      result of the execution
      Throws:
      ProcessExecutionException - in case process can't be executed
    • createSchedule

      public com.gooddata.sdk.model.dataload.processes.Schedule createSchedule​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.model.dataload.processes.Schedule schedule)
      Create new schedule with given data by given project.
      Parameters:
      project - project to which the process belongs
      schedule - to create
      Returns:
      created schedule
    • updateSchedule

      public com.gooddata.sdk.model.dataload.processes.Schedule updateSchedule​(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
      Update the given schedule
      Parameters:
      schedule - to update
      Returns:
      updated Schedule
      Throws:
      ScheduleNotFoundException - when the schedule doesn't exist
    • getScheduleByUri

      public com.gooddata.sdk.model.dataload.processes.Schedule getScheduleByUri​(java.lang.String uri)
      Get schedule by given URI.
      Parameters:
      uri - schedule uri
      Returns:
      found schedule
      Throws:
      ScheduleNotFoundException - when the schedule doesn't exist
    • getScheduleById

      public com.gooddata.sdk.model.dataload.processes.Schedule getScheduleById​(com.gooddata.sdk.model.project.Project project, java.lang.String id)
      Get schedule by given id and project.
      Parameters:
      project - project to which the schedule belongs
      id - schedule id
      Returns:
      found schedule
      Throws:
      ScheduleNotFoundException - when the process doesn't exist
    • listSchedules

      public com.gooddata.sdk.common.collections.PageBrowser<com.gooddata.sdk.model.dataload.processes.Schedule> listSchedules​(com.gooddata.sdk.model.project.Project project)
      Get browser of schedules by given project.
      Parameters:
      project - project of schedules
      Returns:
      PageBrowser of found schedules or empty list
    • listSchedules

      public com.gooddata.sdk.common.collections.PageBrowser<com.gooddata.sdk.model.dataload.processes.Schedule> listSchedules​(com.gooddata.sdk.model.project.Project project, com.gooddata.sdk.common.collections.PageRequest startPage)
      Get defined page of paged list of schedules by given project.
      Parameters:
      project - project of schedules
      startPage - page to be retrieved
      Returns:
      PageBrowser list of found schedules or empty list
    • removeSchedule

      public void removeSchedule​(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
      Delete given schedule
      Parameters:
      schedule - to delete
    • executeSchedule

      public FutureResult<com.gooddata.sdk.model.dataload.processes.ScheduleExecution> executeSchedule​(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
      Executes given schedule
      Parameters:
      schedule - to execute
      Returns:
      schedule execution