Categorygithub.com/dell/goisilon
repositorypackage
1.20.0
Repository: https://github.com/dell/goisilon.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# README

:lock: Important Notice

Starting with the release of Container Storage Modules v1.16.0, this repository will no longer be maintained as an open source project. Future development will continue under a closed source model. This change reflects our commitment to delivering even greater value to our customers by enabling faster innovation and more deeply integrated features with the Dell storage portfolio.
For existing customers using Dell’s Container Storage Modules, you will continue to receive:

  • Ongoing Support & Community Engagement
    You will continue to receive high-quality support through Dell Support and our community channels. Your experience of engaging with the Dell community remains unchanged.
  • Streamlined Deployment & Updates
    Deployment and update processes will remain consistent, ensuring a smooth and familiar experience.
  • Access to Documentation & Resources
    All documentation and related materials will remain publicly accessible, providing transparency and technical guidance.
  • Continued Access to Current Open Source Version
    The current open-source version will remain available under its existing license for those who rely on it.

Moving to a closed source model allows Dell’s development team to accelerate feature delivery and enhance integration across our Enterprise Kubernetes Storage solutions ultimately providing a more seamless and robust experience.
We deeply appreciate the contributions of the open source community and remain committed to supporting our customers through this transition.

For questions or access requests, please contact the maintainers via Dell Support.

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

NameDescription
GOISILON_ENDPOINTthe API endpoint, ex. https://172.17.177.230:8080
GOISILON_USERNAMEthe username
GOISILON_GROUPthe user's group
GOISILON_PASSWORDthe password
GOISILON_INSECUREwhether to skip SSL validation
GOISILON_VOLUMEPATHwhich base path to use when looking for volume directories
GOISILON_VOLUMEPATH_PERMISSIONSpermissions for new volume directory
GOISILON_AUTHTYPEwhat 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

For any issues, questions or feedback, please follow our support process