Documentation
¶
Index ¶
- func AWSCreateFleet(c context.Context, api EC2CreateInstanceAPI, input *ec2.CreateFleetInput) (*ec2.CreateFleetOutput, error)
- func AWSCreateLaunchTemplate(c context.Context, api EC2CreateInstanceAPI, ...) (*ec2.CreateLaunchTemplateOutput, error)
- func AWSCreateSubnet(c context.Context, api EC2CreateInstanceAPI, input *ec2.CreateSubnetInput) (*ec2.CreateSubnetOutput, error)
- func AWSDescribeAvailabilityZones(c context.Context, api EC2CreateInstanceAPI, ...) (*ec2.DescribeAvailabilityZonesOutput, error)
- func AWSDescribeInstances(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeInstancesInput) (*ec2.DescribeInstancesOutput, error)
- func AWSDescribeSpotInstanceRequests(c context.Context, api EC2CreateInstanceAPI, ...) (*ec2.DescribeSpotInstanceRequestsOutput, error)
- func AWSDescribeSubnets(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeSubnetsInput) (*ec2.DescribeSubnetsOutput, error)
- func AWSDescribeVPCs(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeVpcsInput) (*ec2.DescribeVpcsOutput, error)
- func AWSGetLaunchTemplate(c context.Context, api EC2CreateInstanceAPI, ...) (*ec2.DescribeLaunchTemplateVersionsOutput, error)
- func AWSGetScores(c context.Context, api EC2CreateInstanceAPI, ...) (*ec2.GetSpotPlacementScoresOutput, error)
- func AWSTerminateInstances(c context.Context, api EC2CreateInstanceAPI, ...) (*ec2.TerminateInstancesOutput, error)
- func GenerateToken() *string
- func MakeClient(region *string, ctx context.Context) (*ec2.Client, error)
- func Optimize(jobFile *cedana.JobFile) []cedana.Instance
- func OptimizeOrchestrator() []cedana.Instance
- func ReverseLookupInstancesById(instances []*cedana.Instance, id string) *cedana.Instance
- func StringPtrToString(p *string) string
- type CreateMachinePaperspaceResponse
- type EC2CreateInstanceAPI
- type LocalProvider
- func (l *LocalProvider) CreateInstance(Candidate *cedana.Instance) (*cedana.Instance, error)
- func (l *LocalProvider) DescribeInstance(Instances []*cedana.Instance, filter string) error
- func (l *LocalProvider) DestroyInstance(i cedana.Instance) error
- func (l *LocalProvider) GetInstanceStatus(i cedana.Instance) (*cedana.ProviderEvent, error)
- func (l *LocalProvider) Name() string
- type MockProvider
- func (m *MockProvider) CreateInstance(Candidate *cedana.Instance) (*cedana.Instance, error)
- func (m *MockProvider) DescribeInstance(Instances []*cedana.Instance, filter string) error
- func (m *MockProvider) DestroyInstance(i cedana.Instance) error
- func (m *MockProvider) GetInstanceStatus(i cedana.Instance) (*cedana.ProviderEvent, error)
- func (m *MockProvider) Name() string
- type Optimizer
- func (o *Optimizer) CedanaBasicPriceOptimizer() *Optimizer
- func (o *Optimizer) FilterAWSCapacity() *Optimizer
- func (o *Optimizer) FilterByRegions(maxInstancesToConsider int) *Optimizer
- func (o *Optimizer) FilterForGPUs() *Optimizer
- func (o *Optimizer) FilterUsingConfig() *Optimizer
- func (o *Optimizer) FilterUsingConfigOrch() *Optimizer
- func (o *Optimizer) FilterUsingMaxPrice() *Optimizer
- func (o *Optimizer) LoadCatalogsFromR2()
- type Paperspace
- func (p *Paperspace) CreateInstance(i *cedana.Instance) (*cedana.Instance, error)
- func (p *Paperspace) DescribeInstance(instances []*cedana.Instance, filter string) error
- func (p *Paperspace) DestroyInstance(i cedana.Instance) error
- func (p *Paperspace) GetInstanceStatus(i cedana.Instance) (*cedana.ProviderEvent, error)
- func (p *Paperspace) Name() string
- type Spot
- func (s *Spot) AMIByRegion(region string) *string
- func (s *Spot) CreateInstance(i *cedana.Instance) (*cedana.Instance, error)
- func (s *Spot) DescribeInstance(instances []*cedana.Instance, filter string) error
- func (s *Spot) DestroyInstance(instance cedana.Instance) error
- func (s *Spot) FetchSpotEvents(ctx context.Context) error
- func (s *Spot) GetInstanceStatus(instance cedana.Instance) (*cedana.ProviderEvent, error)
- func (s *Spot) Name() string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AWSCreateFleet ¶
func AWSCreateFleet(c context.Context, api EC2CreateInstanceAPI, input *ec2.CreateFleetInput) (*ec2.CreateFleetOutput, error)
func AWSCreateLaunchTemplate ¶
func AWSCreateLaunchTemplate(c context.Context, api EC2CreateInstanceAPI, input *ec2.CreateLaunchTemplateInput) (*ec2.CreateLaunchTemplateOutput, error)
func AWSCreateSubnet ¶
func AWSCreateSubnet(c context.Context, api EC2CreateInstanceAPI, input *ec2.CreateSubnetInput) (*ec2.CreateSubnetOutput, error)
func AWSDescribeAvailabilityZones ¶
func AWSDescribeAvailabilityZones(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeAvailabilityZonesInput) (*ec2.DescribeAvailabilityZonesOutput, error)
func AWSDescribeInstances ¶
func AWSDescribeInstances(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeInstancesInput) (*ec2.DescribeInstancesOutput, error)
func AWSDescribeSpotInstanceRequests ¶
func AWSDescribeSpotInstanceRequests(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeSpotInstanceRequestsInput) (*ec2.DescribeSpotInstanceRequestsOutput, error)
func AWSDescribeSubnets ¶
func AWSDescribeSubnets(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeSubnetsInput) (*ec2.DescribeSubnetsOutput, error)
func AWSDescribeVPCs ¶
func AWSDescribeVPCs(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeVpcsInput) (*ec2.DescribeVpcsOutput, error)
func AWSGetLaunchTemplate ¶
func AWSGetLaunchTemplate(c context.Context, api EC2CreateInstanceAPI, input *ec2.DescribeLaunchTemplateVersionsInput) (*ec2.DescribeLaunchTemplateVersionsOutput, error)
func AWSGetScores ¶
func AWSGetScores(c context.Context, api EC2CreateInstanceAPI, input *ec2.GetSpotPlacementScoresInput) (*ec2.GetSpotPlacementScoresOutput, error)
func AWSTerminateInstances ¶
func AWSTerminateInstances(c context.Context, api EC2CreateInstanceAPI, input *ec2.TerminateInstancesInput) (*ec2.TerminateInstancesOutput, error)
func GenerateToken ¶
func GenerateToken() *string
func OptimizeOrchestrator ¶
func StringPtrToString ¶
Types ¶
type CreateMachinePaperspaceResponse ¶
type CreateMachinePaperspaceResponse struct {
ID string `json:"id"`
Name string `json:"name"`
OS string `json:"os"`
RAM string `json:"ram"`
CPUs int `json:"cpus"`
GPU string `json:"gpu"`
StorageTotal string `json:"storageTotal"`
StorageUsed string `json:"storageUsed"`
MachineType string `json:"machineType"`
UsageRate string `json:"usageRate"`
ShutdownTimeoutInHours int `json:"shutdownTimeoutInHours"`
ShutdownTimeoutForces bool `json:"shutdownTimeoutForces"`
PerformAutoSnapshot bool `json:"performAutoSnapshot"`
AutoSnapshotFrequency string `json:"autoSnapshotFrequency"`
AutoSnapshotSaveCount int `json:"autoSnapshotSaveCount"`
DynamicPublicIP bool `json:"dynamicPublicIp"`
AgentType string `json:"agentType"`
DTCreated string `json:"dtCreated"`
State string `json:"state"`
UpdatesPending bool `json:"updatesPending"`
NetworkID string `json:"networkId"`
PrivateIPAddress string `json:"privateIpAddress"`
PublicIPAddress string `json:"publicIpAddress"`
Region string `json:"region"`
ScriptID string `json:"scriptId"`
DTLastRun string `json:"dtLastRun"`
RestorePointSnapshotID string `json:"restorePointSnapshotId"`
RestorePointFrequency string `json:"restorePointFrequency"`
}
response and curl function created w/ GPT the golang paperspace api is.... lacking
type EC2CreateInstanceAPI ¶
type EC2CreateInstanceAPI interface {
CreateFleet(ctx context.Context,
params *ec2.CreateFleetInput,
optFns ...func(*ec2.Options)) (*ec2.CreateFleetOutput, error)
CreateTags(ctx context.Context,
params *ec2.CreateTagsInput,
optFns ...func(*ec2.Options)) (*ec2.CreateTagsOutput, error)
GetSpotPlacementScores(ctx context.Context,
params *ec2.GetSpotPlacementScoresInput,
optFns ...func(*ec2.Options)) (*ec2.GetSpotPlacementScoresOutput, error)
DescribeLaunchTemplateVersions(ctx context.Context,
params *ec2.DescribeLaunchTemplateVersionsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeLaunchTemplateVersionsOutput, error)
CreateLaunchTemplate(ctx context.Context,
params *ec2.CreateLaunchTemplateInput,
optFns ...func(*ec2.Options)) (*ec2.CreateLaunchTemplateOutput, error)
DescribeInstances(ctx context.Context,
params *ec2.DescribeInstancesInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeInstancesOutput, error)
TerminateInstances(ctx context.Context,
params *ec2.TerminateInstancesInput,
optFns ...func(*ec2.Options)) (*ec2.TerminateInstancesOutput, error)
DescribeAvailabilityZones(ctx context.Context,
params *ec2.DescribeAvailabilityZonesInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeAvailabilityZonesOutput, error)
DescribeSubnets(ctx context.Context,
params *ec2.DescribeSubnetsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeSubnetsOutput, error)
DescribeVpcs(ctx context.Context,
params *ec2.DescribeVpcsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeVpcsOutput, error)
CreateSubnet(ctx context.Context,
params *ec2.CreateSubnetInput,
optFns ...func(*ec2.Options)) (*ec2.CreateSubnetOutput, error)
DescribeSpotInstanceRequests(ctx context.Context,
params *ec2.DescribeSpotInstanceRequestsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeSpotInstanceRequestsOutput, error)
}
type LocalProvider ¶
type LocalProvider struct {
// contains filtered or unexported fields
}
func GenLocalClient ¶
func GenLocalClient() *LocalProvider
func (*LocalProvider) CreateInstance ¶
func (*LocalProvider) DescribeInstance ¶
func (l *LocalProvider) DescribeInstance(Instances []*cedana.Instance, filter string) error
func (*LocalProvider) DestroyInstance ¶
func (l *LocalProvider) DestroyInstance(i cedana.Instance) error
func (*LocalProvider) GetInstanceStatus ¶
func (l *LocalProvider) GetInstanceStatus(i cedana.Instance) (*cedana.ProviderEvent, error)
func (*LocalProvider) Name ¶
func (l *LocalProvider) Name() string
type MockProvider ¶
type MockProvider struct {
MockTermination bool // helps fiddle with the termination logic
}
func (*MockProvider) CreateInstance ¶
func (*MockProvider) DescribeInstance ¶
func (m *MockProvider) DescribeInstance(Instances []*cedana.Instance, filter string) error
func (*MockProvider) DestroyInstance ¶
func (m *MockProvider) DestroyInstance(i cedana.Instance) error
func (*MockProvider) GetInstanceStatus ¶
func (m *MockProvider) GetInstanceStatus(i cedana.Instance) (*cedana.ProviderEvent, error)
func (*MockProvider) Name ¶
func (m *MockProvider) Name() string
type Optimizer ¶
type Optimizer struct {
// contains filtered or unexported fields
}
func (*Optimizer) CedanaBasicPriceOptimizer ¶
func (*Optimizer) FilterAWSCapacity ¶
func (*Optimizer) FilterByRegions ¶
func (*Optimizer) FilterForGPUs ¶
Only call if GPU is asked for, as this will return empty otherwise
func (*Optimizer) FilterUsingConfig ¶
func (*Optimizer) FilterUsingConfigOrch ¶
func (*Optimizer) FilterUsingMaxPrice ¶
func (*Optimizer) LoadCatalogsFromR2 ¶
func (o *Optimizer) LoadCatalogsFromR2()
type Paperspace ¶
type Paperspace struct {
// contains filtered or unexported fields
}
implementation of Provider for paperspace
func GenPaperspaceClient ¶
func GenPaperspaceClient() *Paperspace
func (*Paperspace) CreateInstance ¶
func (*Paperspace) DescribeInstance ¶
func (p *Paperspace) DescribeInstance(instances []*cedana.Instance, filter string) error
func (*Paperspace) DestroyInstance ¶
func (p *Paperspace) DestroyInstance(i cedana.Instance) error
func (*Paperspace) GetInstanceStatus ¶
func (p *Paperspace) GetInstanceStatus(i cedana.Instance) (*cedana.ProviderEvent, error)
TODO: Unimplemented
func (*Paperspace) Name ¶
func (p *Paperspace) Name() string
type Spot ¶
type Spot struct {
Ctx context.Context
Cfg *utils.CedanaConfig
Logger *zerolog.Logger
Client EC2CreateInstanceAPI
LaunchParams *ec2.CreateFleetInput
// contains filtered or unexported fields
}
func GenSpotClient ¶
func GenSpotClient() *Spot
func (*Spot) AMIByRegion ¶
func (*Spot) CreateInstance ¶
func (*Spot) DescribeInstance ¶
func (*Spot) DestroyInstance ¶
TODO: should only take one instance at a time!
func (*Spot) GetInstanceStatus ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.