Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultGRPCServerWithTLS(tlsConfig *tls.Config) func([]grpc.ServerOption) *grpc.Server
- func RegisterCloudProviderServer(s grpc.ServiceRegistrar, srv CloudProviderServer)
- func ServePluginWithTLS(pluginImpl CloudProvider, tlsOptions *TLSOptions, logger hclog.Logger)
- type BaseProvider
- func (p *BaseProvider) AddCapability(capability string)
- func (p *BaseProvider) CheckVersionCompatibility() (bool, error)
- func (p *BaseProvider) GetAPIVersion() string
- func (p *BaseProvider) GetManifest() *version.PluginManifest
- func (p *BaseProvider) GetProviderName() string
- func (p *BaseProvider) GetProviderVersion() string
- func (p *BaseProvider) HasCapability(capability string) bool
- func (p *BaseProvider) SetManifest(manifest *version.PluginManifest)
- func (p *BaseProvider) Shutdown()
- type CloudProvider
- type CloudProviderClient
- type CloudProviderPlugin
- func (p *CloudProviderPlugin) Client(*plugin.MuxBroker, *rpc.Client) (interface{}, error)
- func (p *CloudProviderPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
- func (p *CloudProviderPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
- func (p *CloudProviderPlugin) Server(*plugin.MuxBroker) (interface{}, error)
- type CloudProviderServer
- type GRPCCloudProviderClient
- func (m *GRPCCloudProviderClient) GetInstanceInfo(ctx context.Context) (*CloudInstanceInfo, error)
- func (m *GRPCCloudProviderClient) GetProviderName() string
- func (m *GRPCCloudProviderClient) GetProviderVersion() string
- func (m *GRPCCloudProviderClient) ListInstances(ctx context.Context) ([]*CloudInstanceInfo, error)
- func (m *GRPCCloudProviderClient) Shutdown()
- func (m *GRPCCloudProviderClient) StartInstance(ctx context.Context) error
- func (m *GRPCCloudProviderClient) StopInstance(ctx context.Context) error
- type GRPCCloudProviderPlugin
- type GRPCCloudProviderServer
- func (m *GRPCCloudProviderServer) GetInstanceInfo(ctx context.Context, req *GetInstanceInfoRequest) (*GetInstanceInfoResponse, error)
- func (m *GRPCCloudProviderServer) GetProviderName(ctx context.Context, req *GetProviderNameRequest) (*GetProviderNameResponse, error)
- func (m *GRPCCloudProviderServer) GetProviderVersion(ctx context.Context, req *GetProviderVersionRequest) (*GetProviderVersionResponse, error)
- func (m *GRPCCloudProviderServer) ListInstances(ctx context.Context, req *ListInstancesRequest) (*ListInstancesResponse, error)
- func (m *GRPCCloudProviderServer) Shutdown(ctx context.Context, req *ShutdownRequest) (*ShutdownResponse, error)
- func (m *GRPCCloudProviderServer) StartInstance(ctx context.Context, req *StartInstanceRequest) (*StartInstanceResponse, error)
- func (m *GRPCCloudProviderServer) StopInstance(ctx context.Context, req *StopInstanceRequest) (*StopInstanceResponse, error)
- type GetInstanceInfoRequest
- type GetInstanceInfoResponse
- func (*GetInstanceInfoResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetInstanceInfoResponse) GetId() string
- func (x *GetInstanceInfoResponse) GetLaunchTime() *timestamppb.Timestamp
- func (x *GetInstanceInfoResponse) GetName() string
- func (x *GetInstanceInfoResponse) GetRegion() string
- func (x *GetInstanceInfoResponse) GetState() string
- func (x *GetInstanceInfoResponse) GetType() string
- func (x *GetInstanceInfoResponse) GetZone() string
- func (*GetInstanceInfoResponse) ProtoMessage()
- func (x *GetInstanceInfoResponse) ProtoReflect() protoreflect.Message
- func (x *GetInstanceInfoResponse) Reset()
- func (x *GetInstanceInfoResponse) String() string
- type GetProviderNameRequest
- type GetProviderNameResponse
- func (*GetProviderNameResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetProviderNameResponse) GetProviderName() string
- func (*GetProviderNameResponse) ProtoMessage()
- func (x *GetProviderNameResponse) ProtoReflect() protoreflect.Message
- func (x *GetProviderNameResponse) Reset()
- func (x *GetProviderNameResponse) String() string
- type GetProviderVersionRequest
- type GetProviderVersionResponse
- func (*GetProviderVersionResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetProviderVersionResponse) GetProviderVersion() string
- func (*GetProviderVersionResponse) ProtoMessage()
- func (x *GetProviderVersionResponse) ProtoReflect() protoreflect.Message
- func (x *GetProviderVersionResponse) Reset()
- func (x *GetProviderVersionResponse) String() string
- type InstanceInfo
- type SecurePlugin
- type StartInstanceRequest
- type StartInstanceResponse
- func (*StartInstanceResponse) Descriptor() ([]byte, []int)deprecated
- func (x *StartInstanceResponse) GetErrorMessage() string
- func (x *StartInstanceResponse) GetSuccess() bool
- func (*StartInstanceResponse) ProtoMessage()
- func (x *StartInstanceResponse) ProtoReflect() protoreflect.Message
- func (x *StartInstanceResponse) Reset()
- func (x *StartInstanceResponse) String() string
- type StopInstanceRequest
- type StopInstanceResponse
- func (*StopInstanceResponse) Descriptor() ([]byte, []int)deprecated
- func (x *StopInstanceResponse) GetErrorMessage() string
- func (x *StopInstanceResponse) GetSuccess() bool
- func (*StopInstanceResponse) ProtoMessage()
- func (x *StopInstanceResponse) ProtoReflect() protoreflect.Message
- func (x *StopInstanceResponse) Reset()
- func (x *StopInstanceResponse) String() string
- type TLSOptions
- type UnimplementedCloudProviderServer
- func (UnimplementedCloudProviderServer) GetInstanceInfo(context.Context, *GetInstanceInfoRequest) (*GetInstanceInfoResponse, error)
- func (UnimplementedCloudProviderServer) GetProviderName(context.Context, *GetProviderNameRequest) (*GetProviderNameResponse, error)
- func (UnimplementedCloudProviderServer) GetProviderVersion(context.Context, *GetProviderVersionRequest) (*GetProviderVersionResponse, error)
- func (UnimplementedCloudProviderServer) StartInstance(context.Context, *StartInstanceRequest) (*StartInstanceResponse, error)
- func (UnimplementedCloudProviderServer) StopInstance(context.Context, *StopInstanceRequest) (*StopInstanceResponse, error)
- type UnsafeCloudProviderServer
Constants ¶
const ( CloudProvider_GetInstanceInfo_FullMethodName = "/plugin.CloudProvider/GetInstanceInfo" CloudProvider_StopInstance_FullMethodName = "/plugin.CloudProvider/StopInstance" CloudProvider_StartInstance_FullMethodName = "/plugin.CloudProvider/StartInstance" CloudProvider_GetProviderName_FullMethodName = "/plugin.CloudProvider/GetProviderName" CloudProvider_GetProviderVersion_FullMethodName = "/plugin.CloudProvider/GetProviderVersion" )
const ( // CurrentAPIVersion is the current API version CurrentAPIVersion = "0.1.0" // ProtocolVersion is the protocol version (this should be incremented for breaking changes) ProtocolVersion = 1 )
API version constants
Variables ¶
var CloudProvider_ServiceDesc = grpc.ServiceDesc{ ServiceName: "plugin.CloudProvider", HandlerType: (*CloudProviderServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "GetInstanceInfo", Handler: _CloudProvider_GetInstanceInfo_Handler, }, { MethodName: "StopInstance", Handler: _CloudProvider_StopInstance_Handler, }, { MethodName: "StartInstance", Handler: _CloudProvider_StartInstance_Handler, }, { MethodName: "GetProviderName", Handler: _CloudProvider_GetProviderName_Handler, }, { MethodName: "GetProviderVersion", Handler: _CloudProvider_GetProviderVersion_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "cloud_provider.proto", }
CloudProvider_ServiceDesc is the grpc.ServiceDesc for CloudProvider service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_cloud_provider_proto protoreflect.FileDescriptor
var Handshake = plugin.HandshakeConfig{ ProtocolVersion: ProtocolVersion, MagicCookieKey: "SNOOZEBOT_PLUGIN", MagicCookieValue: "snoozebot_plugin_v1", }
Handshake is a common handshake that is shared by plugin and host.
var PluginMap = map[string]plugin.Plugin{ "cloud_provider": &CloudProviderPlugin{Impl: nil}, }
PluginMap is the map of plugins we can dispense.
Functions ¶
func DefaultGRPCServerWithTLS ¶
Creates and returns a gRPC server with TLS support
func RegisterCloudProviderServer ¶
func RegisterCloudProviderServer(s grpc.ServiceRegistrar, srv CloudProviderServer)
func ServePluginWithTLS ¶
func ServePluginWithTLS(pluginImpl CloudProvider, tlsOptions *TLSOptions, logger hclog.Logger)
ServePluginWithTLS serves a plugin with TLS support
Types ¶
type BaseProvider ¶
type BaseProvider struct {
// contains filtered or unexported fields
}
BaseProvider provides common functionality for all cloud providers
func NewBaseProvider ¶
func NewBaseProvider(name, pluginVersion string, logger hclog.Logger) *BaseProvider
NewBaseProvider creates a new base provider
func (*BaseProvider) AddCapability ¶
func (p *BaseProvider) AddCapability(capability string)
AddCapability adds a capability to the provider
func (*BaseProvider) CheckVersionCompatibility ¶
func (p *BaseProvider) CheckVersionCompatibility() (bool, error)
CheckVersionCompatibility checks if the plugin API version is compatible with the host
func (*BaseProvider) GetAPIVersion ¶
func (p *BaseProvider) GetAPIVersion() string
GetAPIVersion returns the API version implemented by the plugin
func (*BaseProvider) GetManifest ¶
func (p *BaseProvider) GetManifest() *version.PluginManifest
GetManifest returns the plugin manifest
func (*BaseProvider) GetProviderName ¶
func (p *BaseProvider) GetProviderName() string
GetProviderName returns the name of the cloud provider
func (*BaseProvider) GetProviderVersion ¶
func (p *BaseProvider) GetProviderVersion() string
GetProviderVersion returns the version of the cloud provider plugin
func (*BaseProvider) HasCapability ¶
func (p *BaseProvider) HasCapability(capability string) bool
HasCapability checks if the provider has a capability
func (*BaseProvider) SetManifest ¶
func (p *BaseProvider) SetManifest(manifest *version.PluginManifest)
SetManifest sets the plugin manifest
func (*BaseProvider) Shutdown ¶
func (p *BaseProvider) Shutdown()
Shutdown performs any cleanup when the plugin is being unloaded
type CloudProvider ¶
type CloudProvider interface {
// GetAPIVersion returns the API version implemented by the plugin
GetAPIVersion() string
// GetInstanceInfo gets information about the current instance
GetInstanceInfo(ctx context.Context) (*InstanceInfo, error)
// StopInstance stops the current instance
StopInstance(ctx context.Context) error
// StartInstance starts the current instance
StartInstance(ctx context.Context) error
// GetProviderName returns the name of the cloud provider
GetProviderName() string
// GetProviderVersion returns the version of the cloud provider plugin
GetProviderVersion() string
// ListInstances lists all instances
ListInstances(ctx context.Context) ([]*InstanceInfo, error)
// Shutdown is called when the plugin is being unloaded
Shutdown()
}
CloudProvider is the interface that we expose for cloud provider plugins
type CloudProviderClient ¶
type CloudProviderClient interface {
GetInstanceInfo(ctx context.Context, in *GetInstanceInfoRequest, opts ...grpc.CallOption) (*GetInstanceInfoResponse, error)
StopInstance(ctx context.Context, in *StopInstanceRequest, opts ...grpc.CallOption) (*StopInstanceResponse, error)
StartInstance(ctx context.Context, in *StartInstanceRequest, opts ...grpc.CallOption) (*StartInstanceResponse, error)
GetProviderName(ctx context.Context, in *GetProviderNameRequest, opts ...grpc.CallOption) (*GetProviderNameResponse, error)
GetProviderVersion(ctx context.Context, in *GetProviderVersionRequest, opts ...grpc.CallOption) (*GetProviderVersionResponse, error)
}
CloudProviderClient is the client API for CloudProvider service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewCloudProviderClient ¶
func NewCloudProviderClient(cc grpc.ClientConnInterface) CloudProviderClient
type CloudProviderPlugin ¶
type CloudProviderPlugin struct {
// Concrete implementation, written in Go. This is only used for plugins
// that are written in Go.
Impl CloudProvider
}
CloudProviderPlugin is the implementation of plugin.Plugin so we can serve/consume this.
func (*CloudProviderPlugin) GRPCClient ¶
func (p *CloudProviderPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
GRPCClient returns the client for this plugin.
func (*CloudProviderPlugin) GRPCServer ¶
func (p *CloudProviderPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
GRPCServer registers this plugin for serving with a gRPC server.
type CloudProviderServer ¶
type CloudProviderServer interface {
GetInstanceInfo(context.Context, *GetInstanceInfoRequest) (*GetInstanceInfoResponse, error)
StopInstance(context.Context, *StopInstanceRequest) (*StopInstanceResponse, error)
StartInstance(context.Context, *StartInstanceRequest) (*StartInstanceResponse, error)
GetProviderName(context.Context, *GetProviderNameRequest) (*GetProviderNameResponse, error)
GetProviderVersion(context.Context, *GetProviderVersionRequest) (*GetProviderVersionResponse, error)
// contains filtered or unexported methods
}
CloudProviderServer is the server API for CloudProvider service. All implementations must embed UnimplementedCloudProviderServer for forward compatibility.
type GRPCCloudProviderClient ¶
type GRPCCloudProviderClient struct {
// contains filtered or unexported fields
}
GRPCCloudProviderClient is an implementation of CloudProvider that talks over gRPC.
func (*GRPCCloudProviderClient) GetInstanceInfo ¶
func (m *GRPCCloudProviderClient) GetInstanceInfo(ctx context.Context) (*CloudInstanceInfo, error)
func (*GRPCCloudProviderClient) GetProviderName ¶
func (m *GRPCCloudProviderClient) GetProviderName() string
func (*GRPCCloudProviderClient) GetProviderVersion ¶
func (m *GRPCCloudProviderClient) GetProviderVersion() string
func (*GRPCCloudProviderClient) ListInstances ¶
func (m *GRPCCloudProviderClient) ListInstances(ctx context.Context) ([]*CloudInstanceInfo, error)
func (*GRPCCloudProviderClient) Shutdown ¶
func (m *GRPCCloudProviderClient) Shutdown()
func (*GRPCCloudProviderClient) StartInstance ¶
func (m *GRPCCloudProviderClient) StartInstance(ctx context.Context) error
func (*GRPCCloudProviderClient) StopInstance ¶
func (m *GRPCCloudProviderClient) StopInstance(ctx context.Context) error
type GRPCCloudProviderPlugin ¶
type GRPCCloudProviderPlugin struct {
CloudProviderPlugin
TLSConfig *tls.Config
}
GRPCCloudProviderPlugin is a wrapper for the CloudProviderPlugin that adds TLS support to the gRPC connection
func (*GRPCCloudProviderPlugin) GRPCClient ¶
func (p *GRPCCloudProviderPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
GRPCClient returns the client for this plugin with TLS support
func (*GRPCCloudProviderPlugin) GRPCServer ¶
func (p *GRPCCloudProviderPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
GRPCServer registers the plugin for serving with a gRPC server with TLS support
type GRPCCloudProviderServer ¶
type GRPCCloudProviderServer struct {
// This is the real implementation
Impl CloudProvider
UnimplementedCloudProviderServer
}
GRPCCloudProviderServer is the gRPC server that GRPCCloudProviderClient talks to.
func (*GRPCCloudProviderServer) GetInstanceInfo ¶
func (m *GRPCCloudProviderServer) GetInstanceInfo(ctx context.Context, req *GetInstanceInfoRequest) (*GetInstanceInfoResponse, error)
func (*GRPCCloudProviderServer) GetProviderName ¶
func (m *GRPCCloudProviderServer) GetProviderName(ctx context.Context, req *GetProviderNameRequest) (*GetProviderNameResponse, error)
func (*GRPCCloudProviderServer) GetProviderVersion ¶
func (m *GRPCCloudProviderServer) GetProviderVersion(ctx context.Context, req *GetProviderVersionRequest) (*GetProviderVersionResponse, error)
func (*GRPCCloudProviderServer) ListInstances ¶
func (m *GRPCCloudProviderServer) ListInstances(ctx context.Context, req *ListInstancesRequest) (*ListInstancesResponse, error)
func (*GRPCCloudProviderServer) Shutdown ¶
func (m *GRPCCloudProviderServer) Shutdown(ctx context.Context, req *ShutdownRequest) (*ShutdownResponse, error)
func (*GRPCCloudProviderServer) StartInstance ¶
func (m *GRPCCloudProviderServer) StartInstance(ctx context.Context, req *StartInstanceRequest) (*StartInstanceResponse, error)
func (*GRPCCloudProviderServer) StopInstance ¶
func (m *GRPCCloudProviderServer) StopInstance(ctx context.Context, req *StopInstanceRequest) (*StopInstanceResponse, error)
type GetInstanceInfoRequest ¶
type GetInstanceInfoRequest struct {
// contains filtered or unexported fields
}
func (*GetInstanceInfoRequest) Descriptor
deprecated
func (*GetInstanceInfoRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetInstanceInfoRequest.ProtoReflect.Descriptor instead.
func (*GetInstanceInfoRequest) ProtoMessage ¶
func (*GetInstanceInfoRequest) ProtoMessage()
func (*GetInstanceInfoRequest) ProtoReflect ¶
func (x *GetInstanceInfoRequest) ProtoReflect() protoreflect.Message
func (*GetInstanceInfoRequest) Reset ¶
func (x *GetInstanceInfoRequest) Reset()
func (*GetInstanceInfoRequest) String ¶
func (x *GetInstanceInfoRequest) String() string
type GetInstanceInfoResponse ¶
type GetInstanceInfoResponse struct {
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
Region string `protobuf:"bytes,4,opt,name=region,proto3" json:"region,omitempty"`
Zone string `protobuf:"bytes,5,opt,name=zone,proto3" json:"zone,omitempty"`
State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"`
LaunchTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=launch_time,json=launchTime,proto3" json:"launch_time,omitempty"`
// contains filtered or unexported fields
}
func (*GetInstanceInfoResponse) Descriptor
deprecated
func (*GetInstanceInfoResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetInstanceInfoResponse.ProtoReflect.Descriptor instead.
func (*GetInstanceInfoResponse) GetId ¶
func (x *GetInstanceInfoResponse) GetId() string
func (*GetInstanceInfoResponse) GetLaunchTime ¶
func (x *GetInstanceInfoResponse) GetLaunchTime() *timestamppb.Timestamp
func (*GetInstanceInfoResponse) GetName ¶
func (x *GetInstanceInfoResponse) GetName() string
func (*GetInstanceInfoResponse) GetRegion ¶
func (x *GetInstanceInfoResponse) GetRegion() string
func (*GetInstanceInfoResponse) GetState ¶
func (x *GetInstanceInfoResponse) GetState() string
func (*GetInstanceInfoResponse) GetType ¶
func (x *GetInstanceInfoResponse) GetType() string
func (*GetInstanceInfoResponse) GetZone ¶
func (x *GetInstanceInfoResponse) GetZone() string
func (*GetInstanceInfoResponse) ProtoMessage ¶
func (*GetInstanceInfoResponse) ProtoMessage()
func (*GetInstanceInfoResponse) ProtoReflect ¶
func (x *GetInstanceInfoResponse) ProtoReflect() protoreflect.Message
func (*GetInstanceInfoResponse) Reset ¶
func (x *GetInstanceInfoResponse) Reset()
func (*GetInstanceInfoResponse) String ¶
func (x *GetInstanceInfoResponse) String() string
type GetProviderNameRequest ¶
type GetProviderNameRequest struct {
// contains filtered or unexported fields
}
func (*GetProviderNameRequest) Descriptor
deprecated
func (*GetProviderNameRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetProviderNameRequest.ProtoReflect.Descriptor instead.
func (*GetProviderNameRequest) ProtoMessage ¶
func (*GetProviderNameRequest) ProtoMessage()
func (*GetProviderNameRequest) ProtoReflect ¶
func (x *GetProviderNameRequest) ProtoReflect() protoreflect.Message
func (*GetProviderNameRequest) Reset ¶
func (x *GetProviderNameRequest) Reset()
func (*GetProviderNameRequest) String ¶
func (x *GetProviderNameRequest) String() string
type GetProviderNameResponse ¶
type GetProviderNameResponse struct {
ProviderName string `protobuf:"bytes,1,opt,name=provider_name,json=providerName,proto3" json:"provider_name,omitempty"`
// contains filtered or unexported fields
}
func (*GetProviderNameResponse) Descriptor
deprecated
func (*GetProviderNameResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetProviderNameResponse.ProtoReflect.Descriptor instead.
func (*GetProviderNameResponse) GetProviderName ¶
func (x *GetProviderNameResponse) GetProviderName() string
func (*GetProviderNameResponse) ProtoMessage ¶
func (*GetProviderNameResponse) ProtoMessage()
func (*GetProviderNameResponse) ProtoReflect ¶
func (x *GetProviderNameResponse) ProtoReflect() protoreflect.Message
func (*GetProviderNameResponse) Reset ¶
func (x *GetProviderNameResponse) Reset()
func (*GetProviderNameResponse) String ¶
func (x *GetProviderNameResponse) String() string
type GetProviderVersionRequest ¶
type GetProviderVersionRequest struct {
// contains filtered or unexported fields
}
func (*GetProviderVersionRequest) Descriptor
deprecated
func (*GetProviderVersionRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetProviderVersionRequest.ProtoReflect.Descriptor instead.
func (*GetProviderVersionRequest) ProtoMessage ¶
func (*GetProviderVersionRequest) ProtoMessage()
func (*GetProviderVersionRequest) ProtoReflect ¶
func (x *GetProviderVersionRequest) ProtoReflect() protoreflect.Message
func (*GetProviderVersionRequest) Reset ¶
func (x *GetProviderVersionRequest) Reset()
func (*GetProviderVersionRequest) String ¶
func (x *GetProviderVersionRequest) String() string
type GetProviderVersionResponse ¶
type GetProviderVersionResponse struct {
ProviderVersion string `protobuf:"bytes,1,opt,name=provider_version,json=providerVersion,proto3" json:"provider_version,omitempty"`
// contains filtered or unexported fields
}
func (*GetProviderVersionResponse) Descriptor
deprecated
func (*GetProviderVersionResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetProviderVersionResponse.ProtoReflect.Descriptor instead.
func (*GetProviderVersionResponse) GetProviderVersion ¶
func (x *GetProviderVersionResponse) GetProviderVersion() string
func (*GetProviderVersionResponse) ProtoMessage ¶
func (*GetProviderVersionResponse) ProtoMessage()
func (*GetProviderVersionResponse) ProtoReflect ¶
func (x *GetProviderVersionResponse) ProtoReflect() protoreflect.Message
func (*GetProviderVersionResponse) Reset ¶
func (x *GetProviderVersionResponse) Reset()
func (*GetProviderVersionResponse) String ¶
func (x *GetProviderVersionResponse) String() string
type InstanceInfo ¶
type InstanceInfo struct {
ID string
Name string
Type string
Region string
Zone string
State string
LaunchTime time.Time
}
InstanceInfo contains information about a cloud instance
type SecurePlugin ¶
type SecurePlugin struct {
PluginName string
PluginCmd *exec.Cmd
TLSConfig *tls.Config
Logger hclog.Logger
Client *plugin.Client
CloudProvider CloudProvider
}
SecurePlugin is a wrapper for a plugin with TLS support
func NewSecurePlugin ¶
func NewSecurePlugin(pluginName string, pluginPath string, tlsOptions *TLSOptions, logger hclog.Logger) (*SecurePlugin, error)
NewSecurePlugin creates a new secure plugin
func (*SecurePlugin) GetCloudProvider ¶
func (p *SecurePlugin) GetCloudProvider() CloudProvider
GetCloudProvider returns the cloud provider
type StartInstanceRequest ¶
type StartInstanceRequest struct {
// contains filtered or unexported fields
}
func (*StartInstanceRequest) Descriptor
deprecated
func (*StartInstanceRequest) Descriptor() ([]byte, []int)
Deprecated: Use StartInstanceRequest.ProtoReflect.Descriptor instead.
func (*StartInstanceRequest) ProtoMessage ¶
func (*StartInstanceRequest) ProtoMessage()
func (*StartInstanceRequest) ProtoReflect ¶
func (x *StartInstanceRequest) ProtoReflect() protoreflect.Message
func (*StartInstanceRequest) Reset ¶
func (x *StartInstanceRequest) Reset()
func (*StartInstanceRequest) String ¶
func (x *StartInstanceRequest) String() string
type StartInstanceResponse ¶
type StartInstanceResponse struct {
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
// contains filtered or unexported fields
}
func (*StartInstanceResponse) Descriptor
deprecated
func (*StartInstanceResponse) Descriptor() ([]byte, []int)
Deprecated: Use StartInstanceResponse.ProtoReflect.Descriptor instead.
func (*StartInstanceResponse) GetErrorMessage ¶
func (x *StartInstanceResponse) GetErrorMessage() string
func (*StartInstanceResponse) GetSuccess ¶
func (x *StartInstanceResponse) GetSuccess() bool
func (*StartInstanceResponse) ProtoMessage ¶
func (*StartInstanceResponse) ProtoMessage()
func (*StartInstanceResponse) ProtoReflect ¶
func (x *StartInstanceResponse) ProtoReflect() protoreflect.Message
func (*StartInstanceResponse) Reset ¶
func (x *StartInstanceResponse) Reset()
func (*StartInstanceResponse) String ¶
func (x *StartInstanceResponse) String() string
type StopInstanceRequest ¶
type StopInstanceRequest struct {
// contains filtered or unexported fields
}
func (*StopInstanceRequest) Descriptor
deprecated
func (*StopInstanceRequest) Descriptor() ([]byte, []int)
Deprecated: Use StopInstanceRequest.ProtoReflect.Descriptor instead.
func (*StopInstanceRequest) ProtoMessage ¶
func (*StopInstanceRequest) ProtoMessage()
func (*StopInstanceRequest) ProtoReflect ¶
func (x *StopInstanceRequest) ProtoReflect() protoreflect.Message
func (*StopInstanceRequest) Reset ¶
func (x *StopInstanceRequest) Reset()
func (*StopInstanceRequest) String ¶
func (x *StopInstanceRequest) String() string
type StopInstanceResponse ¶
type StopInstanceResponse struct {
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
// contains filtered or unexported fields
}
func (*StopInstanceResponse) Descriptor
deprecated
func (*StopInstanceResponse) Descriptor() ([]byte, []int)
Deprecated: Use StopInstanceResponse.ProtoReflect.Descriptor instead.
func (*StopInstanceResponse) GetErrorMessage ¶
func (x *StopInstanceResponse) GetErrorMessage() string
func (*StopInstanceResponse) GetSuccess ¶
func (x *StopInstanceResponse) GetSuccess() bool
func (*StopInstanceResponse) ProtoMessage ¶
func (*StopInstanceResponse) ProtoMessage()
func (*StopInstanceResponse) ProtoReflect ¶
func (x *StopInstanceResponse) ProtoReflect() protoreflect.Message
func (*StopInstanceResponse) Reset ¶
func (x *StopInstanceResponse) Reset()
func (*StopInstanceResponse) String ¶
func (x *StopInstanceResponse) String() string
type TLSOptions ¶
type TLSOptions struct {
Enabled bool // Whether to use TLS
CertDir string // Directory for certificates
CACert string // CA certificate file
CertFile string // Certificate file
KeyFile string // Private key file
SkipVerify bool // Skip certificate verification (not recommended for production)
}
TLSOptions contains TLS configuration options
type UnimplementedCloudProviderServer ¶
type UnimplementedCloudProviderServer struct{}
UnimplementedCloudProviderServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedCloudProviderServer) GetInstanceInfo ¶
func (UnimplementedCloudProviderServer) GetInstanceInfo(context.Context, *GetInstanceInfoRequest) (*GetInstanceInfoResponse, error)
func (UnimplementedCloudProviderServer) GetProviderName ¶
func (UnimplementedCloudProviderServer) GetProviderName(context.Context, *GetProviderNameRequest) (*GetProviderNameResponse, error)
func (UnimplementedCloudProviderServer) GetProviderVersion ¶
func (UnimplementedCloudProviderServer) GetProviderVersion(context.Context, *GetProviderVersionRequest) (*GetProviderVersionResponse, error)
func (UnimplementedCloudProviderServer) StartInstance ¶
func (UnimplementedCloudProviderServer) StartInstance(context.Context, *StartInstanceRequest) (*StartInstanceResponse, error)
func (UnimplementedCloudProviderServer) StopInstance ¶
func (UnimplementedCloudProviderServer) StopInstance(context.Context, *StopInstanceRequest) (*StopInstanceResponse, error)
type UnsafeCloudProviderServer ¶
type UnsafeCloudProviderServer interface {
// contains filtered or unexported methods
}
UnsafeCloudProviderServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to CloudProviderServer will result in compilation errors.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
credentials
Package credentials provides standardized credential handling for cloud providers
|
Package credentials provides standardized credential handling for cloud providers |
|
Package version provides versioning utilities for the Snoozebot plugin system
|
Package version provides versioning utilities for the Snoozebot plugin system |