gomes

package module
v0.0.0-...-72a8869 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2014 License: Apache-2.0 Imports: 16 Imported by: 1

README

Gomes Moved

Moved to http://github.com/mesos/mesos-go

The pure Mesos Go binding that started in this project has been contributed and ported to http://github.com/mesos/mesos-go. There will be no futher development in this repository.

Gomes

Gomes is a (100%) pure Go framework API for the Apache Mesos cluster manager. Gomes uses the HTTP wire protocol to send message and receive events to and from a running Mesos master. This project provides an idiomatic Go API that makes it super easy to create Mesos frameworks using Go.

Gomes Example

See a simple Gomes test - https://github.com/vladimirvivien/gomes/blob/master/gomestest/gomestest.go

What's Working

Gomes is at its (very early) infancy. However, here is what the API can already do today:

  • Register with running Master
  • Receive Framework-Reisgered event
  • Receive Framework-Reregistered event
  • Receive Resource Offers event
  • Receive Offer Rescinded event
  • Receive Status Update
  • ... and more features to come out soon!
Future Plans
  • Gomes still needs tons of work to be done.
  • There many pieces missing to get it stable and ready for usage.
  • The goal is to get it on par to its C++ counterpart, libprocess.
Background

Munch of the inspiration for this work came from:

Documentation

Index

Constants

View Source
const (
	MESOS_INTERNAL_PREFIX  = "mesos.internal."
	MESOS_SCHEDULER_PREFIX = "scheduler"
	HTTP_SCHEME            = "http"
	HTTP_POST_METHOD       = "POST"
	HTTP_MASTER_PREFIX     = "master"
	HTTP_LIBPROC_PREFIX    = "libprocess/"
	HTTP_CONTENT_TYPE      = "application/x-protobuf"
)
View Source
const (
	REGISTER_FRAMEWORK_CALL   = "RegisterFrameworkMessage"
	UNREGISTER_FRAMEWORK_CALL = "UnregisterFrameworkMessage"
	DEACTIVATE_FRAMEWORK_CALL = "DeactivateFrameworkMessage"
	KILL_TASK_CALL            = "KillTaskMessage"
	LAUNCH_TASKS_CALL         = "LaunchTasksMessage"
)

calls from sched to master

View Source
const (
	FRAMEWORK_REGISTERED_EVENT   = "FrameworkRegisteredMessage"
	FRAMEWORK_REREGISTERED_EVENT = "FrameworkReregisteredMessage"
	RESOURCE_OFFERS_EVENT        = "ResourceOffersMessage"
	RESCIND_OFFER_EVENT          = "RescindResourceOfferMessage"
	STATUS_UPDATE_EVENT          = "StatusUpdateMessage"
	FRAMEWORK_MESSAGE_EVENT      = "ExecutorToFrameworkMessage"
	LOST_SLAVE_EVENT             = "LostSlaveMessage"
)

Events from Mesos Master

Variables

This section is empty.

Functions

func NewExecutorID

func NewExecutorID(id string) *mesos.ExecutorID

func NewFrameworkID

func NewFrameworkID(id string) *mesos.FrameworkID

func NewFrameworkInfo

func NewFrameworkInfo(user, name string, frameworkId *mesos.FrameworkID) *mesos.FrameworkInfo

func NewMasterInfo

func NewMasterInfo(id string, ip, port uint32) *mesos.MasterInfo

func NewOffer

func NewOffer(offerId *mesos.OfferID, frameworkId *mesos.FrameworkID, slaveId *mesos.SlaveID, hostname string) *mesos.Offer

func NewOfferID

func NewOfferID(id string) *mesos.OfferID

func NewRangesResource

func NewRangesResource(name string, ranges []*mesos.Value_Range) *mesos.Resource

func NewScalarResource

func NewScalarResource(name string, val float64) *mesos.Resource

func NewSetResource

func NewSetResource(name string, items []string) *mesos.Resource

func NewSlaveID

func NewSlaveID(id string) *mesos.SlaveID

func NewStatusUpdate

func NewStatusUpdate(frameworkId *mesos.FrameworkID, taskStatus *mesos.TaskStatus, timestamp float64, uuid []byte) *mesos.StatusUpdate

func NewTaskID

func NewTaskID(id string) *mesos.TaskID

func NewTaskInfo

func NewTaskInfo(
	name string,
	taskId *mesos.TaskID,
	slaveId *mesos.SlaveID,
	resources []*mesos.Resource,
) *mesos.TaskInfo

func NewTaskStatus

func NewTaskStatus(taskId *mesos.TaskID, state mesos.TaskState) *mesos.TaskStatus

func NewValueRange

func NewValueRange(begin, end uint64) *mesos.Value_Range

Types

type MesosError

type MesosError string

func NewMesosError

func NewMesosError(msg string) MesosError

func (MesosError) Error

func (err MesosError) Error() string

type Scheduler

type Scheduler struct {
	Registered       func(*SchedulerDriver, *mesos.FrameworkID, *mesos.MasterInfo)
	Reregistered     func(*SchedulerDriver, *mesos.MasterInfo)
	ResourceOffers   func(*SchedulerDriver, []*mesos.Offer)
	OfferRescinded   func(*SchedulerDriver, *mesos.OfferID)
	StatusUpdate     func(*SchedulerDriver, *mesos.TaskStatus)
	FrameworkMessage func(*SchedulerDriver, *mesos.ExecutorID, *mesos.SlaveID, []byte)
	SlaveLost        func(*SchedulerDriver, *mesos.SlaveID)
	Error            func(*SchedulerDriver, MesosError)
}

func NewMesosScheduler

func NewMesosScheduler() *Scheduler

type SchedulerDriver

type SchedulerDriver struct {
	Master        string
	Scheduler     *Scheduler
	FrameworkInfo *mesos.FrameworkInfo
	Status        mesos.Status
	// contains filtered or unexported fields
}

func NewSchedDriver

func NewSchedDriver(scheduler *Scheduler, framework *mesos.FrameworkInfo, master string) (*SchedulerDriver, error)

func (*SchedulerDriver) Abort

func (driver *SchedulerDriver) Abort() mesos.Status

func (*SchedulerDriver) Join

func (driver *SchedulerDriver) Join() mesos.Status

func (*SchedulerDriver) KillTask

func (driver *SchedulerDriver) KillTask(taskId *mesos.TaskID) mesos.Status

func (*SchedulerDriver) Run

func (driver *SchedulerDriver) Run() mesos.Status

func (*SchedulerDriver) Start

func (driver *SchedulerDriver) Start() mesos.Status

func (*SchedulerDriver) Stop

func (driver *SchedulerDriver) Stop(failover bool) mesos.Status

Directories

Path Synopsis
Package mesosproto is a generated protocol buffer package.
Package mesosproto is a generated protocol buffer package.

Jump to

Keyboard shortcuts

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