goisilon

package module
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2022 License: Apache-2.0 Imports: 17 Imported by: 4

README

GoIsilon

Overview

GoIsilon is a Go package that provides a client for the EMC Isilon OneFS HTTP API. The package provides both direct implementations of the API bindings as well as abstract, helper functionality. In addition, services such as Docker, Mesos, and REX-Ray use the GoIsilon package to integrate with the NAS storage platform.

OneFS API Support Matrix

The GoIsilon package is tested with and supports OneFS 8.1+.

Examples

The tests provide working examples for how to use the package, but here are a few code snippets to further illustrate the basic ideas:

Initialize a new client

This example shows how to initialize a new client.

client, err := NewClient(context.Background())
if err != nil {
	panic(err)
}

Please note that there is no attempt to provide a host, credentials, or any other options. The NewClient() function relies on the following environment variables to configure the GoIsilon client:

Environment Variables
Name Description
GOISILON_ENDPOINT the API endpoint, ex. https://172.17.177.230:8080
GOISILON_USERNAME the username
GOISILON_GROUP the user's group
GOISILON_PASSWORD the password
GOISILON_INSECURE whether to skip SSL validation
GOISILON_VOLUMEPATH which base path to use when looking for volume directories
GOISILON_VOLUMEPATH_PERMISSIONS permissions for new volume directory
GOISILON_AUTHTYPE what should be the auth type, session-based or basic
Initialize a new client with options

The following example demonstrates how to explicitly specify options when creating a client:

client, err := NewClientWithArgs(
	context.Background(),
	"https://172.17.177.230:8080",
	true,
	1,
	"userName",
	"groupName",
	"password",
	"/ifs/volumes",
	"0777",
	0)
if err != nil {
	panic(err)
}
Create a Volume

This snippet creates a new volume named "testing" at "/ifs/volumes/testing". The volume path is generated by concatenating the client's volume path and the name of the volume.

volume, err := c.CreateVolume(context.Background(), "testing")
Export a Volume

Enabling a volume for NFS access is fairly straight-forward.

if err := c.ExportVolume(context.Background(), "testing"); err != nil {
	panic(err)
}
Delete a Volume

When a volume is no longer needed, this is how it may be removed.

if err := c.DeleteVolume(context.Background(), "testing"); err != nil {
	panic(err)
}
More Examples

Several, very detailed examples of the GoIsilon package in use can be found in the package's *_test.go files as well as in the libStorage Isilon storage driver.

Contributions

Please contribute!

Licensing

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Support

If you have any questions related to this project, please utilize the Dell EMC container forum located here. The code and documentation are released with no warranties or SLAs and are intended to be supported through a community driven process.

Documentation

Overview

Copyright (c) 2022 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (c) 2019 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (c) 2022 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (c) 2019 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (c) 2022 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (c) 2019 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (c) 2019 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (c) 2022 Dell Inc, or its subsidiaries.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	RESYNC_PREP            apiv11.JOB_ACTION              = "resync_prep"
	ALLOW_WRITE            apiv11.JOB_ACTION              = "allow_write"
	ALLOW_WRITE_REVERT     apiv11.JOB_ACTION              = "allow_write_revert"
	TEST                   apiv11.JOB_ACTION              = "test"
	SCHEDULED              apiv11.JOB_STATE               = "scheduled"
	RUNNING                apiv11.JOB_STATE               = "running"
	PAUSED                 apiv11.JOB_STATE               = "paused"
	FINISHED               apiv11.JOB_STATE               = "finished"
	FAILED                 apiv11.JOB_STATE               = "failed"
	CANCELED               apiv11.JOB_STATE               = "canceled"
	NEEDS_ATTENTION        apiv11.JOB_STATE               = "needs_attention"
	SKIPPED                apiv11.JOB_STATE               = "skipped"
	PENDING                apiv11.JOB_STATE               = "pending"
	UNKNOWN                apiv11.JOB_STATE               = "unknown"
	WRITES_DISABLED        apiv11.FAILOVER_FAILBACK_STATE = "writes_disabled"
	ENABLING_WRITES        apiv11.FAILOVER_FAILBACK_STATE = "enabling_writes"
	WRITES_ENABLED         apiv11.FAILOVER_FAILBACK_STATE = "writes_enabled"
	DISABLING_WRITES       apiv11.FAILOVER_FAILBACK_STATE = "disabling_writes"
	CREATING_RESYNC_POLICY apiv11.FAILOVER_FAILBACK_STATE = "creating_resync_policy"
	RESYNC_POLICY_CREATED  apiv11.FAILOVER_FAILBACK_STATE = "resync_policy_created"
)

Variables

View Source
var ConcurrentHTTPConnections = 2

ConcurrentHTTPConnections is the number of allowed concurrent HTTP connections for API functions that attempt to send multiple API calls at once.

Functions

func FilterReports added in v1.7.0

func FilterReports(values []apiv11.Report, filterFunc func(apiv11.Report) bool) []apiv11.Report

Types

type ACL

type ACL *api.ACL

ACL is an Isilon Access Control List used for managing an object's security.

type Client

type Client struct {

	// API is the underlying OneFS API client.
	API api.Client
}

Client is an Isilon client.

func NewClient

func NewClient(ctx context.Context) (*Client, error)

NewClient returns a new Isilon client struct initialized from the environment.

func NewClientWithArgs

func NewClientWithArgs(
	ctx context.Context,
	endpoint string,
	insecure bool, verboseLogging uint,
	user, group, pass, volumesPath string, volumesPathPermissions string, authType uint8) (*Client, error)

NewClientWithArgs returns a new Isilon client struct initialized from the supplied arguments.

func (*Client) AddExportClients

func (c *Client) AddExportClients(
	ctx context.Context, name string, clients ...string) error

AddExportClients adds to the Export's clients property.

func (*Client) AddExportClientsByExportID

func (c *Client) AddExportClientsByExportID(
	ctx context.Context, id int, clients ...string) error

AddExportClientsByExportID adds to the Export's clients property.

func (*Client) AddExportClientsByExportIDWithZone

func (c *Client) AddExportClientsByExportIDWithZone(
	ctx context.Context, id int, zone string, clients ...string) error

AddExportClientsByExportIDWithZone adds to the Export's clients with access zone property.

func (*Client) AddExportClientsByID

func (c *Client) AddExportClientsByID(
	ctx context.Context, id int, clients []string) error

AddExportClientsByID adds to the Export's clients property.

func (*Client) AddExportClientsByIDWithZone

func (c *Client) AddExportClientsByIDWithZone(
	ctx context.Context, id int, zone string, clients []string) error

AddExportClientsByIDWithZone adds to the Export's clients property.

func (*Client) AddExportReadOnlyClientsByID

func (c *Client) AddExportReadOnlyClientsByID(
	ctx context.Context, id int, clients []string) error

AddExportReadOnlyClientsByID adds to the Export's read-only clients property.

func (*Client) AddExportReadOnlyClientsByIDWithZone

func (c *Client) AddExportReadOnlyClientsByIDWithZone(
	ctx context.Context, id int, zone string, clients []string) error

AddExportReadOnlyClientsByIDWithZone adds to the Export's read-only clients property.

func (*Client) AddExportReadWriteClientsByID

func (c *Client) AddExportReadWriteClientsByID(
	ctx context.Context, id int, clients []string) error

AddExportReadWriteClientsByID adds to the Export's read-write clients property.

func (*Client) AddExportReadWriteClientsByIDWithZone

func (c *Client) AddExportReadWriteClientsByIDWithZone(
	ctx context.Context, id int, zone string, clients []string) error

AddExportReadWriteClientsByIDWithZone adds to the Export's read-write clients property.

func (*Client) AddExportRootClients

func (c *Client) AddExportRootClients(
	ctx context.Context, name string, clients ...string) error

AddExportRootClients adds to the Export's root_clients property.

func (*Client) AddExportRootClientsByID

func (c *Client) AddExportRootClientsByID(
	ctx context.Context, id int, clients ...string) error

AddExportRootClientsByID adds to the Export's root_clients property.

func (*Client) AddExportRootClientsByIDWithZone added in v1.1.0

func (c *Client) AddExportRootClientsByIDWithZone(
	ctx context.Context, id int, zone string, clients []string) error

AddExportRootClientsByIDWithZone adds to the Export's clients property.

func (*Client) AllowWrites added in v1.7.0

func (c *Client) AllowWrites(ctx context.Context, policyName string) error

func (*Client) BreakAssociation added in v1.7.0

func (c *Client) BreakAssociation(ctx context.Context, targetPolicyName string) error

func (*Client) ClearExportClients

func (c *Client) ClearExportClients(
	ctx context.Context, name string) error

ClearExportClients sets the Export's clients property to nil.

func (*Client) ClearExportClientsByID

func (c *Client) ClearExportClientsByID(
	ctx context.Context, id int) error

ClearExportClientsByID sets the Export's clients property to nil.

func (*Client) ClearExportRootClients

func (c *Client) ClearExportRootClients(
	ctx context.Context, name string) error

ClearExportRootClients sets the Export's root_clients property to nil.

func (*Client) ClearExportRootClientsByID

func (c *Client) ClearExportRootClientsByID(
	ctx context.Context, id int) error

ClearExportRootClientsByID sets the Export's clients property to nil.

func (*Client) ClearQuota

func (c *Client) ClearQuota(ctx context.Context, name string) error

ClearQuota removes the quota from a volume

func (*Client) ClearQuotaByID

func (c *Client) ClearQuotaByID(ctx context.Context, id string) error

ClearQuotaByID removes the quota from a volume by quota id

func (*Client) ClearQuotaByIDWithZone

func (c *Client) ClearQuotaByIDWithZone(ctx context.Context, id, zone string) error

ClearQuotaByIDWithZone removes the quota from a volume by quota id with access zone

func (*Client) ClearQuotaWithPath

func (c *Client) ClearQuotaWithPath(ctx context.Context, path string) error

ClearQuotaWithPath removes the quota from a volume with IsiPath as a parameter

func (*Client) CopySnapshot

func (c *Client) CopySnapshot(
	ctx context.Context,
	sourceID int64, sourceName, destinationName string) (Volume, error)

CopySnapshot copies all files/directories in a snapshot to a new directory.

func (*Client) CopySnapshotWithIsiPath

func (c *Client) CopySnapshotWithIsiPath(
	ctx context.Context,
	isiPath, snapshotSourceVolumeIsiPath string,
	sourceID int64,
	sourceName, destinationName string) (Volume, error)

CopySnapshotWithIsiPath copies all files/directories in a snapshot with isiPath to a new directory.

func (*Client) CopyVolume

func (c *Client) CopyVolume(
	ctx context.Context, src, dest string) (Volume, error)

CopyVolume creates a volume based on an existing volume

func (*Client) CopyVolumeWithIsiPath

func (c *Client) CopyVolumeWithIsiPath(
	ctx context.Context, isiPath, src, dest string) (Volume, error)

CopyVolumeWithIsiPath creates a volume based on an existing volume

func (*Client) CreatePolicy added in v1.7.0

func (c *Client) CreatePolicy(ctx context.Context, name string, rpo int, sourcePath string, targetPath string, targetHost string, targetCert string, enabled bool) error

func (*Client) CreateQuota

func (c *Client) CreateQuota(
	ctx context.Context, name string, container bool, size int64) (string, error)

CreateQuota creates a new hard directory quota with the specified size and container option

func (*Client) CreateQuotaWithPath

func (c *Client) CreateQuotaWithPath(
	ctx context.Context, path string, container bool, size int64) (string, error)

CreateQuotaWithPath creates a new hard directory quota with the specified size and container option

func (*Client) CreateSnapshot

func (c *Client) CreateSnapshot(
	ctx context.Context, volName, snapshotName string) (Snapshot, error)

CreateSnapshot creates a snapshot called name of the given path.

func (*Client) CreateSnapshotWithPath

func (c *Client) CreateSnapshotWithPath(
	ctx context.Context, path, snapshotName string) (Snapshot, error)

CreateSnapshotWithPath creates a snapshot by snapshot name and the path of volume.

func (*Client) CreateVolume

func (c *Client) CreateVolume(
	ctx context.Context, name string) (Volume, error)

CreateVolume creates a volume

func (*Client) CreateVolumeDir

func (c *Client) CreateVolumeDir(
	ctx context.Context,
	volumeName, dirPath string,
	fileMode os.FileMode,
	overwrite, recursive bool) error

CreateVolumeDir creates a directory inside a volume.

func (*Client) CreateVolumeNoACL

func (c *Client) CreateVolumeNoACL(
	ctx context.Context, name string) (Volume, error)

CreateVolumeNoACL creates a volume without setting ACL

func (*Client) CreateVolumeWithIsipath

func (c *Client) CreateVolumeWithIsipath(
	ctx context.Context, isiPath, name, isiVolumePathPermissions string) (Volume, error)

CreateVolumeWithIsipath creates a volume with isiPath

func (*Client) CreateVolumeWithIsipathMetaData added in v1.4.0

func (c *Client) CreateVolumeWithIsipathMetaData(
	ctx context.Context, isiPath, name, isiVolumePathPermissions string, metadata map[string]string) (Volume, error)

CreateVolumeWithIsipathMetaData creates a volume with isiPath

func (*Client) DeletePolicy added in v1.7.0

func (c *Client) DeletePolicy(ctx context.Context, name string) error

func (*Client) DeleteTargetPolicy added in v1.7.0

func (c *Client) DeleteTargetPolicy(ctx context.Context, id string) error

func (*Client) DeleteVolume

func (c *Client) DeleteVolume(
	ctx context.Context, name string) error

DeleteVolume deletes a volume

func (*Client) DeleteVolumeWithIsiPath

func (c *Client) DeleteVolumeWithIsiPath(
	ctx context.Context, isiPath, name string) error

DeleteVolumeWithIsiPath deletes a volume with isiPath

func (*Client) DisableFailureMapping

func (c *Client) DisableFailureMapping(
	ctx context.Context, name string) error

DisableFailureMapping disables the map_failure mapping for an Export.

func (*Client) DisableFailureMappingByID

func (c *Client) DisableFailureMappingByID(
	ctx context.Context, id int) error

DisableFailureMappingByID disables the map_failure mapping for an Export.

func (*Client) DisableNonRootMapping

func (c *Client) DisableNonRootMapping(
	ctx context.Context, name string) error

DisableNonRootMapping disables the map_non_root mapping for an Export.

func (*Client) DisableNonRootMappingByID

func (c *Client) DisableNonRootMappingByID(
	ctx context.Context, id int) error

DisableNonRootMappingByID disables the map_non_root mapping for an Export.

func (*Client) DisablePolicy added in v1.7.0

func (c *Client) DisablePolicy(ctx context.Context, name string) error

func (*Client) DisableRootMapping

func (c *Client) DisableRootMapping(
	ctx context.Context, name string) error

DisableRootMapping disables the root mapping for an Export.

func (*Client) DisableRootMappingByID

func (c *Client) DisableRootMappingByID(
	ctx context.Context, id int) error

DisableRootMappingByID disables the root mapping for an Export.

func (*Client) DisallowWrites added in v1.7.0

func (c *Client) DisallowWrites(ctx context.Context, policyName string) error

func (*Client) EnableFailureMapping

func (c *Client) EnableFailureMapping(
	ctx context.Context, name, user string) error

EnableFailureMapping enables the map_failure mapping for an Export.

func (*Client) EnableFailureMappingByID

func (c *Client) EnableFailureMappingByID(
	ctx context.Context, id int, user string) error

EnableFailureMappingByID enables the map_failure mapping for an Export.

func (*Client) EnableNonRootMapping

func (c *Client) EnableNonRootMapping(
	ctx context.Context, name, user string) error

EnableNonRootMapping enables the map_non_root mapping for an Export.

func (*Client) EnableNonRootMappingByID

func (c *Client) EnableNonRootMappingByID(
	ctx context.Context, id int, user string) error

EnableNonRootMappingByID enables the map_non_root mapping for an Export.

func (*Client) EnablePolicy added in v1.7.0

func (c *Client) EnablePolicy(ctx context.Context, name string) error

func (*Client) EnableRootMapping

func (c *Client) EnableRootMapping(
	ctx context.Context, name, user string) error

EnableRootMapping enables the root mapping for an Export.

func (*Client) EnableRootMappingByID

func (c *Client) EnableRootMappingByID(
	ctx context.Context, id int, user string) error

EnableRootMappingByID enables the root mapping for an Export.

func (*Client) Export

func (c *Client) Export(ctx context.Context, name string) (int, error)

Export the volume with a given name on the cluster

func (*Client) ExportPathWithZone

func (c *Client) ExportPathWithZone(ctx context.Context, path, zone, description string) (int, error)

ExportPathWithZone exports the given path and zone on the cluster

func (*Client) ExportSnapshotWithZone

func (c *Client) ExportSnapshotWithZone(ctx context.Context, snapshotName, volumeName, zone, description string) (int, error)

ExportSnapshotWithZone exports the given snapshot and zone on the cluster

func (*Client) ExportVolume

func (c *Client) ExportVolume(
	ctx context.Context, name string) (int, error)

ExportVolume exports a volume

func (*Client) ExportVolumeWithZone

func (c *Client) ExportVolumeWithZone(
	ctx context.Context, name, zone, description string) (int, error)

ExportVolumeWithZone exports a volume in the specified access zone

func (*Client) ExportVolumeWithZoneAndPath

func (c *Client) ExportVolumeWithZoneAndPath(
	ctx context.Context, path, zone, description string) (int, error)

ExportVolumeWithZoneAndPath exports a volume in the specified access zone and path

func (*Client) ExportWithZone

func (c *Client) ExportWithZone(ctx context.Context, name, zone, description string) (int, error)

ExportWithZone exports the volume with a given name and zone on the cluster

func (*Client) ExportWithZoneAndPath

func (c *Client) ExportWithZoneAndPath(ctx context.Context, path, zone, description string) (int, error)

ExportWithZoneAndPath exports the volume with a given name, zone and path on the cluster

func (*Client) ForceDeleteVolume

func (c *Client) ForceDeleteVolume(ctx context.Context, name string) error

ForceDeleteVolume force deletes a volume by resetting the ownership of all descendent directories to the current user prior to issuing a delete call.

func (*Client) GetClusterConfig

func (c *Client) GetClusterConfig(ctx context.Context) (ClusterConfig, error)

GetClusterConfig returns information about the configuration of cluster

func (*Client) GetExportByID

func (c *Client) GetExportByID(ctx context.Context, id int) (Export, error)

GetExportByID returns an export with the provided ID.

func (*Client) GetExportByIDWithZone

func (c *Client) GetExportByIDWithZone(ctx context.Context, id int, zone string) (Export, error)

GetExportByIDWithZone gets the export by export id and access zone

func (*Client) GetExportByName

func (c *Client) GetExportByName(
	ctx context.Context, name string) (Export, error)

GetExportByName returns the first export with a path for the provided volume name.

func (*Client) GetExportByNameWithZone

func (c *Client) GetExportByNameWithZone(
	ctx context.Context, name, zone string) (Export, error)

GetExportByNameWithZone returns the first export with a path for the provided volume name in the given zone.

func (*Client) GetExportClients

func (c *Client) GetExportClients(
	ctx context.Context, name string) ([]string, error)

GetExportClients returns an Export's clients property.

func (*Client) GetExportClientsByID

func (c *Client) GetExportClientsByID(
	ctx context.Context, id int) ([]string, error)

GetExportClientsByID returns an Export's clients property.

func (*Client) GetExportRootClients

func (c *Client) GetExportRootClients(
	ctx context.Context, name string) ([]string, error)

GetExportRootClients returns an Export's root_clients property.

func (*Client) GetExportRootClientsByID

func (c *Client) GetExportRootClientsByID(
	ctx context.Context, id int) ([]string, error)

GetExportRootClientsByID returns an Export's clients property.

func (*Client) GetExportWithPath

func (c *Client) GetExportWithPath(
	ctx context.Context, path string) (Export, error)

GetExportWithPath gets the export with target path

func (*Client) GetExportWithPathAndZone

func (c *Client) GetExportWithPathAndZone(
	ctx context.Context, path, zone string) (Export, error)

GetExportWithPathAndZone gets the export with target path and access zone

func (*Client) GetExports

func (c *Client) GetExports(ctx context.Context) (ExportList, error)

GetExports returns a list of all exports on the cluster

func (*Client) GetExportsWithLimit

func (c *Client) GetExportsWithLimit(
	ctx context.Context, limit string) (Exports, error)

GetExportsWithLimit returns a number of exports in the default sequence and the number is the parameter limit.

func (*Client) GetExportsWithParams

func (c *Client) GetExportsWithParams(
	ctx context.Context, params api.OrderedValues) (Exports, error)

GetExportsWithParams returns exports based on the parameters

func (*Client) GetExportsWithResume

func (c *Client) GetExportsWithResume(
	ctx context.Context, resume string) (Exports, error)

GetExportsWithResume returns the next page of exports based on the resume token from the previous call.

func (*Client) GetFailureMapping

func (c *Client) GetFailureMapping(
	ctx context.Context, name string) (UserMapping, error)

GetFailureMapping returns the map_failure mapping for an Export.

func (*Client) GetFailureMappingByID

func (c *Client) GetFailureMappingByID(
	ctx context.Context, id int) (UserMapping, error)

GetFailureMappingByID returns the map_failure mapping for an Export.

func (*Client) GetIsiSnapshotByIdentity

func (c *Client) GetIsiSnapshotByIdentity(
	ctx context.Context, identity string) (Snapshot, error)

GetIsiSnapshotByIdentity query a snapshot by ID or name param identity string: name or id

func (*Client) GetJobsByPolicyName added in v1.7.0

func (c *Client) GetJobsByPolicyName(ctx context.Context, policyName string) ([]apiv11.Job, error)

func (*Client) GetLocalSerial

func (c *Client) GetLocalSerial(ctx context.Context) (string, error)

GetLocalSerial returns the local serial which is the serial number of cluster

func (*Client) GetNonRootMapping

func (c *Client) GetNonRootMapping(
	ctx context.Context, name string) (UserMapping, error)

GetNonRootMapping returns the map_non_root mapping for an Export.

func (*Client) GetNonRootMappingByID

func (c *Client) GetNonRootMappingByID(
	ctx context.Context, id int) (UserMapping, error)

GetNonRootMappingByID returns the map_non_root mapping for an Export.

func (*Client) GetPolicyByName added in v1.7.0

func (c *Client) GetPolicyByName(ctx context.Context, id string) (Policy, error)

GetPolicyByName returns a policy with the provided ID.

func (*Client) GetQuota

func (c *Client) GetQuota(ctx context.Context, name string) (Quota, error)

GetQuota returns a specific quota by volume name

func (*Client) GetQuotaByID added in v1.2.0

func (c *Client) GetQuotaByID(ctx context.Context, ID string) (Quota, error)

GetQuotaByID returns a specific quota by ID

func (*Client) GetQuotaWithPath

func (c *Client) GetQuotaWithPath(ctx context.Context, path string) (Quota, error)

GetQuotaWithPath returns a specific quota by path

func (*Client) GetReport added in v1.7.0

func (c *Client) GetReport(ctx context.Context, reportName string) (*apiv11.Report, error)

func (*Client) GetReportsByPolicyName added in v1.7.0

func (c *Client) GetReportsByPolicyName(ctx context.Context, policyName string, reportsForPolicy int) (*apiv11.Reports, error)

func (*Client) GetRootMapping

func (c *Client) GetRootMapping(
	ctx context.Context, name string) (UserMapping, error)

GetRootMapping returns the root mapping for an Export.

func (*Client) GetRootMappingByID

func (c *Client) GetRootMappingByID(
	ctx context.Context, id int) (UserMapping, error)

GetRootMappingByID returns the root mapping for an Export.

func (*Client) GetSnapshot

func (c *Client) GetSnapshot(
	ctx context.Context, id int64, name string) (Snapshot, error)

GetSnapshot returns a snapshot matching id, or if that is not found, matching name

func (*Client) GetSnapshotFolderSize

func (c *Client) GetSnapshotFolderSize(ctx context.Context,
	isiPath, name string) (int64, error)

GetSnapshotFolderSize returns the total size of a snapshot folder

func (*Client) GetSnapshotIsiPath added in v1.3.0

func (c *Client) GetSnapshotIsiPath(
	ctx context.Context,
	isiPath, snapshotId string) (string, error)

GetSnapshotIsiPath returns the snapshot directory path

func (*Client) GetSnapshots

func (c *Client) GetSnapshots(ctx context.Context) (SnapshotList, error)

GetSnapshots returns a list of snapshots from the cluster.

func (*Client) GetSnapshotsByPath

func (c *Client) GetSnapshotsByPath(
	ctx context.Context, path string) (SnapshotList, error)

GetSnapshotsByPath returns a list of snapshots covering the supplied path.

func (*Client) GetStatistics

func (c *Client) GetStatistics(
	ctx context.Context,
	keys []string) (Stats, error)

GetStatistics returns statistics from Isilon. Keys indicate type of statistics expected

func (*Client) GetTargetPolicyByName added in v1.7.0

func (c *Client) GetTargetPolicyByName(ctx context.Context, id string) (TargetPolicy, error)

func (*Client) GetVolume

func (c *Client) GetVolume(
	ctx context.Context, id, name string) (Volume, error)

GetVolume returns a specific volume by name or ID

func (*Client) GetVolumeACL

func (c *Client) GetVolumeACL(
	ctx context.Context,
	volumeName string) (ACL, error)

GetVolumeACL returns the ACL for a volume.

func (*Client) GetVolumeExportMap

func (c *Client) GetVolumeExportMap(
	ctx context.Context,
	includeRootClients bool) (map[Volume]Export, error)

GetVolumeExportMap returns a map that relates Volumes to their corresponding Exports. This function uses an Export's "clients" property to define the relationship. The flag "includeRootClients" can be set to "true" in order to also inspect the "root_clients" property of an Export when determining the Volume-to-Export relationship.

func (*Client) GetVolumeSize

func (c *Client) GetVolumeSize(ctx context.Context,
	isiPath, name string) (int64, error)

GetVolumeSize returns the total size of a snapshot folder

func (*Client) GetVolumeWithIsiPath

func (c *Client) GetVolumeWithIsiPath(
	ctx context.Context, isiPath, id, name string) (Volume, error)

GetVolumeWithIsiPath returns a specific volume by name or ID with isiPath

func (*Client) GetVolumes

func (c *Client) GetVolumes(ctx context.Context) ([]Volume, error)

GetVolumes returns a list of volumes

func (*Client) GetZoneByName

func (c *Client) GetZoneByName(ctx context.Context, name string) (*apiv1.IsiZone, error)

GetZoneByName returns a specific access zone which matched the name

func (*Client) IsExported

func (c *Client) IsExported(
	ctx context.Context, name string) (bool, int, error)

IsExported returns a flag and export ID if the provided volume name is already exported.

func (*Client) IsExportedWithZone

func (c *Client) IsExportedWithZone(
	ctx context.Context, name, zone string) (bool, int, error)

IsExportedWithZone returns a flag and export ID if the provided volume name in the specified zone isalready exported.

func (*Client) IsIOInProgress added in v1.8.0

func (c *Client) IsIOInProgress(
	ctx context.Context) (Clients, error)

IsIOinProgress checks whether a volume on a node has IO in progress

func (*Client) IsQuotaLicenseActivated

func (c *Client) IsQuotaLicenseActivated(ctx context.Context) (bool, error)

IsQuotaLicenseActivated checks if SmartQuotas has been activated (either licensed or in evaluation)

func (*Client) IsSnapshotExistent

func (c *Client) IsSnapshotExistent(
	ctx context.Context, identity string) bool

IsSnapshotExistent checks if a snapshot already exists param identity string: name or id

func (*Client) IsVolumeExistent

func (c *Client) IsVolumeExistent(
	ctx context.Context, id, name string) bool

IsVolumeExistent checks whether a volume already exists

func (*Client) IsVolumeExistentWithIsiPath

func (c *Client) IsVolumeExistentWithIsiPath(
	ctx context.Context, isiPath, id, name string) bool

IsVolumeExistentWithIsiPath checks whether a volume already exists with isiPath

func (*Client) QueryVolumeChildren

func (c *Client) QueryVolumeChildren(
	ctx context.Context, name string) (VolumeChildrenMap, error)

QueryVolumeChildren retrieves a list of all of a volume's descendent files and directories.

func (*Client) RemoveExportClientsByID

func (c *Client) RemoveExportClientsByID(
	ctx context.Context, id int, clientsToRemove []string) error

RemoveExportClientsByID removes the given clients from the Export's clients/read_only_clients/read_write_clients properties.

func (*Client) RemoveExportClientsByIDWithZone

func (c *Client) RemoveExportClientsByIDWithZone(
	ctx context.Context, id int, zone string, clientsToRemove []string) error

RemoveExportClientsByIDWithZone removes the given clients from the Export's clients/read_only_clients/read_write_clients properties in a specified access zone.

func (*Client) RemoveExportClientsByName

func (c *Client) RemoveExportClientsByName(
	ctx context.Context, name string, clientsToRemove []string) error

RemoveExportClientsByName removes the given clients from the Export's clients/read_only_clients/read_write_clients properties.

func (*Client) RemoveExportClientsWithPathAndZone

func (c *Client) RemoveExportClientsWithPathAndZone(
	ctx context.Context, path, zone string, clientsToRemove []string) error

RemoveExportClientsWithPathAndZone removes the given clients from the Export's clients/read_only_clients/read_write_clients/root_clients properties with export path and access zone.

func (*Client) RemoveSnapshot

func (c *Client) RemoveSnapshot(
	ctx context.Context, id int64, name string) error

RemoveSnapshot removes the snapshot by id, or failing that, the snapshot matching name.

func (*Client) ResetPolicy added in v1.7.0

func (c *Client) ResetPolicy(ctx context.Context, name string) error

func (*Client) ResyncPrep added in v1.7.0

func (c *Client) ResyncPrep(ctx context.Context, policyName string) error

func (*Client) RunActionForPolicy added in v1.7.0

func (c *Client) RunActionForPolicy(ctx context.Context, policyName string, action apiv11.JOB_ACTION) (*apiv11.Job, error)

func (*Client) SetExportClients

func (c *Client) SetExportClients(
	ctx context.Context, name string, clients ...string) error

SetExportClients sets the Export's clients property.

func (*Client) SetExportClientsByID

func (c *Client) SetExportClientsByID(
	ctx context.Context, id int, clients ...string) error

SetExportClientsByID sets the Export's clients property.

func (*Client) SetExportClientsByIDWithZone

func (c *Client) SetExportClientsByIDWithZone(
	ctx context.Context, id int, zone string, clients ...string) error

SetExportClientsByIDWithZone sets the Export's clients with access zone property.

func (*Client) SetExportRootClients

func (c *Client) SetExportRootClients(
	ctx context.Context, name string, clients ...string) error

SetExportRootClients sets the Export's root_clients property.

func (*Client) SetExportRootClientsByID

func (c *Client) SetExportRootClientsByID(
	ctx context.Context, id int, clients ...string) error

SetExportRootClientsByID sets the Export's clients property.

func (*Client) SetPolicyEnabledField added in v1.7.0

func (c *Client) SetPolicyEnabledField(ctx context.Context, name string, value bool) error

func (*Client) SetQuotaSize

func (c *Client) SetQuotaSize(
	ctx context.Context, name string, size int64) (string, error)

SetQuotaSize sets the max size (hard threshold) of a quota for a volume

func (*Client) SetVolumeMode

func (c *Client) SetVolumeMode(
	ctx context.Context,
	volumeName string, mode int) error

SetVolumeMode sets the permissions to the specified mode (chmod)

func (*Client) SetVolumeOwner

func (c *Client) SetVolumeOwner(
	ctx context.Context,
	volumeName, userName string) error

SetVolumeOwner sets the owner for a volume.

func (*Client) SetVolumeOwnerToCurrentUser

func (c *Client) SetVolumeOwnerToCurrentUser(
	ctx context.Context,
	volumeName string) error

SetVolumeOwnerToCurrentUser sets the owner for a volume to the user that was used to connect to the API.

func (*Client) StartSyncIQJob added in v1.7.0

func (c *Client) StartSyncIQJob(ctx context.Context, job *apiv11.JobRequest) (*apiv11.Job, error)

func (*Client) SyncPolicy added in v1.7.0

func (c *Client) SyncPolicy(ctx context.Context, policyName string) error

func (*Client) Unexport

func (c *Client) Unexport(
	ctx context.Context, name string) error

Unexport stops exporting a given volume from the cluster.

func (*Client) UnexportByID

func (c *Client) UnexportByID(
	ctx context.Context, id int) error

UnexportByID unexports an Export by its ID.

func (*Client) UnexportByIDWithZone

func (c *Client) UnexportByIDWithZone(
	ctx context.Context, id int, zone string) error

UnexportByIDWithZone unexports an Export by its ID and zone.

func (*Client) UnexportVolume

func (c *Client) UnexportVolume(
	ctx context.Context, name string) error

UnexportVolume stops exporting a volume

func (*Client) UnexportWithZone

func (c *Client) UnexportWithZone(
	ctx context.Context, name, zone string) error

UnexportWithZone stops exporting a given volume in the given from the cluster.

func (*Client) UpdateQuotaSize

func (c *Client) UpdateQuotaSize(
	ctx context.Context, name string, size int64) error

UpdateQuotaSize modifies the max size (hard threshold) of a quota for a volume

func (*Client) UpdateQuotaSizeByID added in v1.2.0

func (c *Client) UpdateQuotaSizeByID(
	ctx context.Context, ID string, size int64) error

UpdateQuotaSizeByID modifies the max size (hard threshold) of a quota for a volume

func (*Client) WaitForNoActiveJobs added in v1.7.0

func (c *Client) WaitForNoActiveJobs(ctx context.Context, policyName string) error

func (*Client) WaitForPolicyEnabledFieldCondition added in v1.7.0

func (c *Client) WaitForPolicyEnabledFieldCondition(ctx context.Context, policyName string, enabled bool) error

func (*Client) WaitForPolicyLastJobState added in v1.7.0

func (c *Client) WaitForPolicyLastJobState(ctx context.Context, policyName string, state apiv11.JOB_STATE) error

func (*Client) WaitForTargetPolicyCondition added in v1.7.0

func (c *Client) WaitForTargetPolicyCondition(ctx context.Context, policyName string, condition apiv11.FAILOVER_FAILBACK_STATE) error

type Clients added in v1.8.0

type Clients *apiv3.ExportClientList

type ClusterConfig

type ClusterConfig *apiv3.IsiClusterConfig

ClusterConfig represents the configuration of cluster in k8s (namespace API).

type Export

type Export *apiv2.Export

Export is an Isilon Export

type ExportList

type ExportList []*apiv2.Export

ExportList is a list of Isilon Exports.

type Exports

type Exports *apiv2.Exports

Exports is the whole struct of return JSON from the exports REST API

type Policy added in v1.7.0

type Policy *apiv11.Policy

Policy is an Isilon Policy

type Quota

type Quota *api.IsiQuota

Quota maps to an Isilon filesystem quota.

type Snapshot

type Snapshot *api.IsiSnapshot

Snapshot represents an Isilon snapshot.

type SnapshotList

type SnapshotList []*api.IsiSnapshot

SnapshotList represents a list of Isilon snapshots.

type Stats

type Stats *apiv3.IsiStatsResp

Stats is Isilon statistics data structure .

type TargetPolicy added in v1.7.0

type TargetPolicy *apiv11.TargetPolicy

type UserMapping

type UserMapping *apiv2.UserMapping

UserMapping maps to the ISI <user-mapping> type.

type Volume

type Volume *apiv1.IsiVolume

Volume represents an Isilon Volume (namespace API).

type VolumeChildren

type VolumeChildren apiv2.ContainerChildList

VolumeChildren is a list of a container's children.

type VolumeChildrenMap

type VolumeChildrenMap map[string]*apiv2.ContainerChild

VolumeChildrenMap returns a map of all descendent children of a container, where the key is the path.

Directories

Path Synopsis
api
json
Package json implements encoding and decoding of JSON as defined in RFC 4627.
Package json implements encoding and decoding of JSON as defined in RFC 4627.
v1
v11
v2
v3
v5

Jump to

Keyboard shortcuts

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