Documentation ¶
Overview ¶
Package admin implements the functions to call pulsar admin
Index ¶
- Constants
- func IsAlreadyExist(err error) bool
- func IsInternalServerError(err error) bool
- func IsNotFound(err error) bool
- func IsPermissionNotFound(err error) bool
- type DummyPulsarAdmin
- func (d *DummyPulsarAdmin) ApplyNamespace(name string, params *NamespaceParams) error
- func (d *DummyPulsarAdmin) ApplyTenant(name string, params *TenantParams) error
- func (d *DummyPulsarAdmin) ApplyTopic(name string, params *TopicParams) error
- func (d *DummyPulsarAdmin) Close() error
- func (d *DummyPulsarAdmin) DeleteNamespace(name string) error
- func (d *DummyPulsarAdmin) DeleteTenant(name string) error
- func (d *DummyPulsarAdmin) DeleteTopic(name string) error
- func (d *DummyPulsarAdmin) GrantPermissions(p Permissioner) error
- func (d *DummyPulsarAdmin) RevokePermissions(p Permissioner) error
- type NamespaceParams
- type NamespacePermission
- type Permissioner
- type PulsarAdmin
- type PulsarAdminClient
- func (p *PulsarAdminClient) ApplyNamespace(name string, params *NamespaceParams) error
- func (p *PulsarAdminClient) ApplyTenant(name string, params *TenantParams) error
- func (p *PulsarAdminClient) ApplyTopic(name string, params *TopicParams) error
- func (p *PulsarAdminClient) Close() error
- func (p *PulsarAdminClient) DeleteNamespace(name string) error
- func (p *PulsarAdminClient) DeleteTenant(name string) error
- func (p *PulsarAdminClient) DeleteTopic(name string) error
- func (p *PulsarAdminClient) GrantPermissions(permission Permissioner) error
- func (p *PulsarAdminClient) RevokePermissions(permission Permissioner) error
- type PulsarAdminConfig
- type PulsarAdminCreator
- type Reason
- type TenantParams
- type TopicParams
- type TopicPermission
Constants ¶
const ( // TopicDomainSeparator is the separator to separate the topic name TopicDomainSeparator = "://" // TopicDomainPersistent is the prefix for persistent topic TopicDomainPersistent = "persistent" // TopicDomainNonPersistent is the prefix for non persistent topic TopicDomainNonPersistent = "non-persistent" )
Variables ¶
This section is empty.
Functions ¶
func IsAlreadyExist ¶
IsAlreadyExist returns true if the error indicates the resource already exist
func IsInternalServerError ¶
IsInternalServerError returns true if the error indicates the resource already exist
func IsNotFound ¶
IsNotFound returns true if the error indicates the resource is not found on server
func IsPermissionNotFound ¶
IsPermissionNotFound returns true if the permission is not set
Types ¶
type DummyPulsarAdmin ¶
type DummyPulsarAdmin struct { }
DummyPulsarAdmin is a dummy struct of PulsarAdmin
func (*DummyPulsarAdmin) ApplyNamespace ¶
func (d *DummyPulsarAdmin) ApplyNamespace(name string, params *NamespaceParams) error
ApplyNamespace is a fake implements of ApplyNamespace
func (*DummyPulsarAdmin) ApplyTenant ¶
func (d *DummyPulsarAdmin) ApplyTenant(name string, params *TenantParams) error
ApplyTenant is a fake implements of ApplyTenant
func (*DummyPulsarAdmin) ApplyTopic ¶
func (d *DummyPulsarAdmin) ApplyTopic(name string, params *TopicParams) error
ApplyTopic is a fake implements of ApplyTopic
func (*DummyPulsarAdmin) Close ¶
func (d *DummyPulsarAdmin) Close() error
Close is a fake implements of Close
func (*DummyPulsarAdmin) DeleteNamespace ¶
func (d *DummyPulsarAdmin) DeleteNamespace(name string) error
DeleteNamespace is a fake implements of DeleteNamespace
func (*DummyPulsarAdmin) DeleteTenant ¶
func (d *DummyPulsarAdmin) DeleteTenant(name string) error
DeleteTenant is a fake implements of DeleteTenant
func (*DummyPulsarAdmin) DeleteTopic ¶
func (d *DummyPulsarAdmin) DeleteTopic(name string) error
DeleteTopic is a fake implements of DeleteTopic
func (*DummyPulsarAdmin) GrantPermissions ¶
func (d *DummyPulsarAdmin) GrantPermissions(p Permissioner) error
GrantPermissions is a fake implements of GrantPermissions
func (*DummyPulsarAdmin) RevokePermissions ¶
func (d *DummyPulsarAdmin) RevokePermissions(p Permissioner) error
RevokePermissions is a fake implements of RevokePermissions
type NamespaceParams ¶
type NamespaceParams struct { Bundles *int32 MaxProducersPerTopic *int32 MaxConsumersPerTopic *int32 MaxConsumersPerSubscription *int32 MessageTTL *metav1.Duration RetentionTime *metav1.Duration RetentionSize *resource.Quantity BacklogQuotaLimitTime *metav1.Duration BacklogQuotaLimitSize *resource.Quantity BacklogQuotaRetentionPolicy *string BacklogQuotaType *string }
NamespaceParams indicates the parameters for creating a namespace
type NamespacePermission ¶
NamespacePermission is the parameters to grant permission for a namespace
type Permissioner ¶
type Permissioner interface { // Grant grants permission to role on a resource Grant(client pulsar.Client) error // Revoke revokes permission from role on a resource Revoke(client pulsar.Client) error }
Permissioner implements the functions to grant and revoke permission for namespace and topic
type PulsarAdmin ¶
type PulsarAdmin interface { // ApplyTenant creates or updates a tenant with parameters ApplyTenant(name string, params *TenantParams) error // DeleteTenant delete a specific tenant DeleteTenant(name string) error // ApplyNamespace creates a namespace with parameters ApplyNamespace(name string, params *NamespaceParams) error // DeleteNamespace delete a specific namespace DeleteNamespace(name string) error // ApplyTopic creates a topic with parameters ApplyTopic(name string, params *TopicParams) error // DeleteTopic delete a specific topic DeleteTopic(name string) error // GrantPermissions grants permissions to multiple role with multiple actions // on a namespace or topic, each role will be granted the same actions GrantPermissions(p Permissioner) error // RevokePermissions revoke permissions from roles on a namespace or topic. // it will revoke all actions which granted to a role on a namespace or topic RevokePermissions(p Permissioner) error // Close releases the connection with pulsar admin Close() error }
PulsarAdmin is the interface that defines the functions to call pulsar admin
func NewDummyPulsarAdmin ¶
func NewDummyPulsarAdmin(config PulsarAdminConfig) (PulsarAdmin, error)
NewDummyPulsarAdmin is a dummy initialization function
func NewPulsarAdmin ¶
func NewPulsarAdmin(conf PulsarAdminConfig) (PulsarAdmin, error)
NewPulsarAdmin initialize a pulsar admin client with configuration
type PulsarAdminClient ¶
type PulsarAdminClient struct {
// contains filtered or unexported fields
}
PulsarAdminClient define the client to call pulsar
func (*PulsarAdminClient) ApplyNamespace ¶
func (p *PulsarAdminClient) ApplyNamespace(name string, params *NamespaceParams) error
ApplyNamespace creates a namespace with policies
func (*PulsarAdminClient) ApplyTenant ¶
func (p *PulsarAdminClient) ApplyTenant(name string, params *TenantParams) error
ApplyTenant creates or updates a tenant, if AllowdClusters is not provided, it will list all clusters in pular When updates a tenant, If AdminRoles is empty, the current set of roles won't be modified
func (*PulsarAdminClient) ApplyTopic ¶
func (p *PulsarAdminClient) ApplyTopic(name string, params *TopicParams) error
ApplyTopic creates a topic with policies
func (*PulsarAdminClient) Close ¶
func (p *PulsarAdminClient) Close() error
Close do nothing for now
func (*PulsarAdminClient) DeleteNamespace ¶
func (p *PulsarAdminClient) DeleteNamespace(name string) error
DeleteNamespace deletes a specific namespace
func (*PulsarAdminClient) DeleteTenant ¶
func (p *PulsarAdminClient) DeleteTenant(name string) error
DeleteTenant deletes a specific tenant
func (*PulsarAdminClient) DeleteTopic ¶
func (p *PulsarAdminClient) DeleteTopic(name string) error
DeleteTopic deletes a specific topic
func (*PulsarAdminClient) GrantPermissions ¶
func (p *PulsarAdminClient) GrantPermissions(permission Permissioner) error
GrantPermissions grants permissions to multiple role with multiple actions on a namespace or topic, each role will be granted the same actions
func (*PulsarAdminClient) RevokePermissions ¶
func (p *PulsarAdminClient) RevokePermissions(permission Permissioner) error
RevokePermissions revoke permissions from roles on a namespace or topic. it will revoke all actions which granted to a role on a namespace or topic
type PulsarAdminConfig ¶
type PulsarAdminConfig struct { // WebServiceURL to connect to Pulsar. WebServiceURL string // Set the path to the trusted TLS certificate file TLSTrustCertsFilePath string // Configure whether the Pulsar client accept untrusted TLS certificate from broker (default: false) TLSAllowInsecureConnection bool TLSEnableHostnameVerification bool // Either Token or OAuth2 configuration must be provided // The Token used for authentication. Token string // OAuth2 related configuration used for authentication. IssuerEndpoint string ClientID string Audience string Key string }
PulsarAdminConfig indicates the configurations which are needed to initialize the pulsar admin
type PulsarAdminCreator ¶
type PulsarAdminCreator func(config PulsarAdminConfig) (PulsarAdmin, error)
PulsarAdminCreator is the function type to create a PulsarAdmin with config
type Reason ¶
type Reason int
Reason indicates the status code
const ( Reason = 401 // ReasonForbidden means don't have admin permission for the operation ReasonForbidden Reason = 403 // ReasonNotFound means a resource is not found in Pulsar ReasonNotFound Reason = 404 // ReasonAlreadyExist means a resource already exist in Pulsar ReasonAlreadyExist Reason = 409 // ReasonInvalidParameter means a resource already exist in Pulsar // Status code 412 ReasonInvalidParameter Reason = 412 // ReasonInternalServerError means Pulsar server fail to handle the request // Status code 500 ReasonInternalServerError Reason = 500 // ReasonUnknown means error reason is not clear ReasonUnknown Reason = 0 )ReasonUnauthorized
func ErrorReason ¶
ErrorReason returns the HTTP status code for the error
type TenantParams ¶
TenantParams indicates the parameters for creating a tenant
type TopicParams ¶
type TopicParams struct { Persistent *bool Partitions *int32 MaxProducers *int32 MaxConsumers *int32 MessageTTL *metav1.Duration MaxUnAckedMessagesPerConsumer *int32 MaxUnAckedMessagesPerSubscription *int32 RetentionTime *metav1.Duration RetentionSize *resource.Quantity BacklogQuotaLimitTime *metav1.Duration BacklogQuotaLimitSize *resource.Quantity BacklogQuotaRetentionPolicy *string }
TopicParams indicates the parameters for creating a topic
type TopicPermission ¶
TopicPermission is the parameters to grant permission for a topic