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.