service

package
v0.0.0-...-a23f117 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type JobApp

type JobApp struct {
	SiteRepo        repo.SiteRepository
	JobRepo         repo.JobRepository
	ParticipantRepo repo.JobParticipantRepository
	ProjectRepo     repo.ProjectRepository
	ProjectDataRepo repo.ProjectDataRepository
}

JobApp provides functions to handle job related events

func (*JobApp) ProcessJobApprovalResponse

func (app *JobApp) ProcessJobApprovalResponse(jobUUID string, context *JobApprovalContext) error

ProcessJobApprovalResponse calls the domain service to process the job approval response

func (*JobApp) ProcessJobCreationRequest

func (app *JobApp) ProcessJobCreationRequest(request *JobRemoteJobCreationRequest) error

ProcessJobCreationRequest builds the creation requests and calls the domain service

func (*JobApp) ProcessJobStatusUpdate

func (app *JobApp) ProcessJobStatusUpdate(jobUUID string, context *JobStatusUpdateContext) error

ProcessJobStatusUpdate calls the domain service to handle the job status update event

type JobApprovalContext

type JobApprovalContext struct {
	SiteUUID string `json:"site_uuid"`
	Approved bool   `json:"approved"`
}

JobApprovalContext contains the issuing site and the approval result

type JobDataBase

type JobDataBase struct {
	DataUUID  string `json:"data_uuid"`
	LabelName string `json:"label_name"`
}

JobDataBase describes one data configuration for a job

type JobRemoteJobCreationRequest

type JobRemoteJobCreationRequest struct {
	UUID                   string                  `json:"uuid"`
	ConfJson               string                  `json:"conf_json"`
	DSLJson                string                  `json:"dsl_json"`
	Name                   string                  `json:"name"`
	Description            string                  `json:"description"`
	Type                   entity.JobType          `json:"type"`
	ProjectUUID            string                  `json:"project_uuid"`
	InitiatorData          JobDataBase             `json:"initiator_data"`
	OtherData              []JobDataBase           `json:"other_site_data"`
	ValidationEnabled      bool                    `json:"training_validation_enabled"`
	ValidationSizePercent  uint                    `json:"training_validation_percent"`
	ModelName              string                  `json:"training_model_name"`
	AlgorithmType          entity.JobAlgorithmType `json:"training_algorithm_type"`
	AlgorithmComponentName string                  `json:"algorithm_component_name"`
	EvaluateComponentName  string                  `json:"evaluate_component_name"`
	ComponentsToDeploy     []string                `json:"training_component_list_to_deploy"`
	ModelUUID              string                  `json:"predicting_model_uuid"`
	Username               string                  `json:"username"`
}

JobRemoteJobCreationRequest is the structure containing necessary info to create a job

type JobStatusUpdateContext

type JobStatusUpdateContext struct {
	Status               entity.JobStatus                       `json:"status"`
	StatusMessage        string                                 `json:"status_message"`
	FATEJobID            string                                 `json:"fate_job_id"`
	FATEJobStatus        string                                 `json:"fate_job_status"`
	FATEModelID          string                                 `json:"fate_model_id"`
	FATEModelVersion     string                                 `json:"fate_model_version"`
	ParticipantStatusMap map[string]entity.JobParticipantStatus `json:"participant_status_map"`
}

JobStatusUpdateContext contain necessary info for updating job status, including status of the participants

type ProjectApp

type ProjectApp struct {
	ProjectRepo     repo.ProjectRepository
	ParticipantRepo repo.ProjectParticipantRepository
	SiteRepo        repo.SiteRepository
	InvitationRepo  repo.ProjectInvitationRepository
	ProjectDataRepo repo.ProjectDataRepository
}

ProjectApp provides functions to handle project related events

func (*ProjectApp) ListDataAssociationByProject

func (app *ProjectApp) ListDataAssociationByProject(projectUUID string) (map[string]ProjectDataAssociation, error)

ListDataAssociationByProject returns current associated data for certain project

func (*ProjectApp) ListParticipantByProject

func (app *ProjectApp) ListParticipantByProject(projectUUID string) (map[string]entity.ProjectParticipant, error)

ListParticipantByProject returns participant list in a project

func (*ProjectApp) ListProjectByParticipant

func (app *ProjectApp) ListProjectByParticipant(participantUUID string) (map[string]ProjectInfoWithStatus, error)

ListProjectByParticipant returns information of projects related to the specified site

func (*ProjectApp) ProcessDataAssociation

func (app *ProjectApp) ProcessDataAssociation(projectUUID string, data *ProjectDataAssociation) error

ProcessDataAssociation handles new data association

func (*ProjectApp) ProcessDataDismissal

func (app *ProjectApp) ProcessDataDismissal(projectUUID string, baseData *ProjectDataAssociationBase) error

ProcessDataDismissal handles data association dismissal

func (*ProjectApp) ProcessInvitation

func (app *ProjectApp) ProcessInvitation(req *ProjectInvitationRequest) error

ProcessInvitation handles new invitation request

func (*ProjectApp) ProcessInvitationResponse

func (app *ProjectApp) ProcessInvitationResponse(invitationUUID string, accepted bool) error

ProcessInvitationResponse handles invitation response

func (*ProjectApp) ProcessInvitationRevocation

func (app *ProjectApp) ProcessInvitationRevocation(invitationUUID string) error

ProcessInvitationRevocation handles invitation revocation request

func (*ProjectApp) ProcessParticipantDismissal

func (app *ProjectApp) ProcessParticipantDismissal(projectUUID, siteUUID string) error

ProcessParticipantDismissal handles participate dismissal

func (*ProjectApp) ProcessParticipantInfoUpdate

func (app *ProjectApp) ProcessParticipantInfoUpdate(siteUUID string) error

ProcessParticipantInfoUpdate handles sites info update event

func (*ProjectApp) ProcessParticipantLeaving

func (app *ProjectApp) ProcessParticipantLeaving(projectUUID, siteUUID string) error

ProcessParticipantLeaving handles participate leaving

func (*ProjectApp) ProcessParticipantUnregistration

func (app *ProjectApp) ProcessParticipantUnregistration(siteUUID string) error

ProcessParticipantUnregistration handles participant unregistration event

func (*ProjectApp) ProcessProjectClosing

func (app *ProjectApp) ProcessProjectClosing(projectUUID string) error

ProcessProjectClosing handles project closing event

type ProjectDataAssociation

type ProjectDataAssociation struct {
	ProjectDataAssociationBase
	Name           string    `json:"name"`
	Description    string    `json:"description"`
	SiteName       string    `json:"site_name"`
	SiteUUID       string    `json:"site_uuid"`
	SitePartyID    uint      `json:"site_party_id"`
	TableName      string    `json:"table_name"`
	TableNamespace string    `json:"table_namespace"`
	CreationTime   time.Time `json:"creation_time"`
	UpdateTime     time.Time `json:"update_time"`
}

ProjectDataAssociation represents a data associated in a project

type ProjectDataAssociationBase

type ProjectDataAssociationBase struct {
	DataUUID string `json:"data_uuid"`
}

ProjectDataAssociationBase contains the basic info of a project data association

type ProjectInfoWithStatus

type ProjectInfoWithStatus struct {
	ProjectUUID                string               `json:"project_uuid"`
	ProjectName                string               `json:"project_name"`
	ProjectDescription         string               `json:"project_description"`
	ProjectAutoApprovalEnabled bool                 `json:"project_auto_approval_enabled"`
	ProjectManager             string               `json:"project_manager"`
	ProjectManagingSiteName    string               `json:"project_managing_site_name"`
	ProjectManagingSitePartyID uint                 `json:"project_managing_site_party_id"`
	ProjectManagingSiteUUID    string               `json:"project_managing_site_uuid"`
	ProjectCreationTime        time.Time            `json:"project_creation_time"`
	ProjectStatus              entity.ProjectStatus `json:"project_status"`
}

ProjectInfoWithStatus contains project basic information and the status inferred for certain participant

type ProjectInvitationRequest

type ProjectInvitationRequest struct {
	UUID                       string                   `json:"uuid"`
	SiteUUID                   string                   `json:"site_uuid"`
	SitePartyID                uint                     `json:"site_party_id"`
	ProjectUUID                string                   `json:"project_uuid"`
	ProjectName                string                   `json:"project_name"`
	ProjectDescription         string                   `json:"project_description"`
	ProjectAutoApprovalEnabled bool                     `json:"project_auto_approval_enabled"`
	ProjectManager             string                   `json:"project_manager"`
	ProjectManagingSiteName    string                   `json:"project_managing_site_name"`
	ProjectManagingSitePartyID uint                     `json:"project_managing_site_party_id"`
	ProjectManagingSiteUUID    string                   `json:"project_managing_site_uuid"`
	ProjectCreationTime        time.Time                `json:"project_creation_time"`
	AssociatedData             []ProjectDataAssociation `json:"associated_data"`
}

ProjectInvitationRequest is an invitation for asking a site to join a project

type SiteApp

type SiteApp struct {
	// SiteRepo is the repository for persisting site info
	SiteRepo repo.SiteRepository
}

SiteApp provide functions to manage the sites

func (*SiteApp) GetSiteList

func (app *SiteApp) GetSiteList() ([]entity.Site, error)

GetSiteList returns all saved sites info

func (*SiteApp) RegisterSite

func (app *SiteApp) RegisterSite(site *entity.Site) error

RegisterSite creates or updates the site info

func (*SiteApp) UnregisterSite

func (app *SiteApp) UnregisterSite(siteUUID string) error

UnregisterSite remove a site from this manager

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL