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
All Methods Instance Methods Concrete Methods 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 processFutureResult<com.gooddata.sdk.model.dataload.processes.ScheduleExecution>
executeSchedule(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
Executes given schedulevoid
getExecutionLog(com.gooddata.sdk.model.dataload.processes.ProcessExecutionDetail executionDetail, java.io.OutputStream outputStream)
Get process execution logcom.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 processvoid
removeSchedule(com.gooddata.sdk.model.dataload.processes.Schedule schedule)
Delete given schedulecom.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
-
-
-
-
Field Detail
-
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 Detail
-
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 templateaccountService
- service to access accountsdataStoreService
- service for upload process datasettings
- settings
-
-
Method Detail
-
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 belongsprocess
- to createprocessData
- 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 belongsprocess
- 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 belongsprocess
- 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 createprocessData
- 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 belongsid
- 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 ofoutputStream
- 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 ofoutputStream
- 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 belongsschedule
- 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 belongsid
- 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 schedulesstartPage
- 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
-
-