Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 29 additions & 11 deletions test/access_control_records_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
package test

import (
"testing"

"github.com/hpe-storage/nimble-golang-sdk/pkg/client/v1/nimbleos"
"github.com/hpe-storage/nimble-golang-sdk/pkg/sdkprovider"
"github.com/hpe-storage/nimble-golang-sdk/pkg/service"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"testing"
)

type ACRWorkflowSuite struct {
Expand All @@ -22,27 +23,40 @@ type ACRWorkflowSuite struct {

func (suite *ACRWorkflowSuite) SetupSuite() {
groupService, err := config()
assert.Nilf(suite.T(), err, "Unable to connect to group, err: %v", err)
require.Nilf(suite.T(), err, "Unable to connect to group, err: %v", err)
suite.groupService = groupService
suite.volumeService = groupService.GetVolumeService()
suite.igService = groupService.GetInitiatorGroupService()
suite.acrService = groupService.GetAccessControlRecordService()
_, err = createDefaultVolume(suite.volumeService)
assert.Nilf(suite.T(), err, "Unable to create default volume, err: %v", err)
require.Nilf(suite.T(), err, "Unable to create default volume, err: %v", err)
_, err = createDefaultInitiatorGrp(suite.igService)
assert.Nilf(suite.T(), err, "Unable to create default initiator group, err: %v", err)
require.Nilf(suite.T(), err, "Unable to create default initiator group, err: %v", err)
suite.createACR()
}

func (suite *ACRWorkflowSuite) TearDownSuite() {
var accessControlTestResult string
if len(testStarted) == len(testCompleted) {
accessControlTestResult = "PASS"
} else {
accessControlTestResult = "FAIL"
}
var postResult = *postResultToDashboard
if postResult == "true" {
pushResultToDashboard(accessControlTestResult, "C545074", "Access Control Records workflow")
}
//cleanup test result
testStarted = nil
testCompleted = nil
if suite.acr != nil {
err := suite.acrService.DeleteAccessControlRecord(*suite.acr.ID)
assert.Nilf(suite.T(), err, "Unable to delete Access control record, err: %v", err)
require.Nilf(suite.T(), err, "Unable to delete Access control record, err: %v", err)
}
err := deleteDefaultVolume(suite.volumeService)
assert.Nilf(suite.T(), err, "Unable to delete default volume, err: %v", err)
require.Nilf(suite.T(), err, "Unable to delete default volume, err: %v", err)
err = deleteDefaultInitiatorGroup(suite.igService)
assert.Nilf(suite.T(), err, "Unable to delete default initiator group, err: %v", err)
require.Nilf(suite.T(), err, "Unable to delete default initiator group, err: %v", err)
suite.groupService.LogoutService()
}

Expand All @@ -54,22 +68,26 @@ func (suite *ACRWorkflowSuite) createACR() {
VolId: vol.ID,
}
acr, err := suite.acrService.CreateAccessControlRecord(newACR)
assert.Nilf(suite.T(), err, "Unable to create Access Control Record, err: %v", err)
require.Nilf(suite.T(), err, "Unable to create Access Control Record, err: %v", err)
suite.acr = acr
}

func (suite *ACRWorkflowSuite) TestModifyACR() {
testStarted = append(testStarted, true)
updateACR := &nimbleos.AccessControlRecord{
ApplyTo: nimbleos.NsAccessApplyToVolume,
}
_, err := suite.acrService.UpdateAccessControlRecord(*suite.acr.ID, updateACR)
assert.NotNilf(suite.T(), err, "Access Control Record update should have failed")
require.NotNilf(suite.T(), err, "Access Control Record update should have failed")
testCompleted = append(testCompleted, true)
}

func (suite *ACRWorkflowSuite) TestDeleteIGAssociated() {
testStarted = append(testStarted, true)
ig, _ := suite.igService.GetInitiatorGroupByName(defaultInitiatorGrpName)
err := suite.igService.DeleteInitiatorGroup(*ig.ID)
assert.NotNilf(suite.T(), err, "Deletion of Initiator Group associated with volume should have failed")
require.NotNilf(suite.T(), err, "Deletion of Initiator Group associated with volume should have failed")
testCompleted = append(testCompleted, true)
}

func TestACRWorkflowSuite(t *testing.T) {
Expand Down
37 changes: 26 additions & 11 deletions test/chapuser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"github.com/hpe-storage/nimble-golang-sdk/pkg/client/v1/nimbleos"
"github.com/hpe-storage/nimble-golang-sdk/pkg/param"
"github.com/hpe-storage/nimble-golang-sdk/pkg/service"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
)

Expand All @@ -39,14 +39,27 @@ type ChapuserWorkflowSuite struct {

func (suite *ChapuserWorkflowSuite) SetupSuite() {
groupService, err := config()
assert.Nilf(suite.T(), err, "Could not connect to array %v", arrayIP)
require.Nilf(suite.T(), err, "Could not connect to array %v", arrayIP)
suite.groupService = groupService
suite.chapuserService = groupService.GetChapUserService()
suite.initiatorGrpService = groupService.GetInitiatorGroupService()
suite.arrayGroupService = groupService.GetGroupService()
}

func (suite *ChapuserWorkflowSuite) TearDownSuite() {
var chapTestResult string
if len(testStarted) == len(testCompleted) {
chapTestResult = "PASS"
} else {
chapTestResult = "FAIL"
}
var postResult = *postResultToDashboard
if postResult == "true" {
pushResultToDashboard(chapTestResult, "C545226", "Chapuser workflow")
}
//cleanup test result
testStarted = nil
testCompleted = nil
suite.groupService.LogoutService()
}

Expand All @@ -64,11 +77,12 @@ func (suite *ChapuserWorkflowSuite) CreateIGIscsiInitiators(iqnLabel string, iqn
IscsiInitiators: initiatorList,
}
igResp, err := suite.initiatorGrpService.CreateInitiatorGroup(newIG)
assert.Nilf(suite.T(), err, "Initiator group creation failed: %v", initiatorGroupNameChap)
require.Nilf(suite.T(), err, "Initiator group creation failed: %v", initiatorGroupNameChap)
return *igResp.ID
}

func (suite *ChapuserWorkflowSuite) TestCreateModifyDeleteChapuser() {
testStarted = append(testStarted, true)
// Skipping for FC array, test with iscsi initiators
if isFCEnabled(suite.arrayGroupService) {
suite.T().Skip()
Expand All @@ -81,10 +95,10 @@ func (suite *ChapuserWorkflowSuite) TestCreateModifyDeleteChapuser() {
Description: &chapUserDescription,
}
_, err := suite.chapuserService.CreateChapUser(newChapUser)
assert.Nilf(suite.T(), err, "Chap User %v creation failed", chapUserName)
require.Nilf(suite.T(), err, "Chap User %v creation failed", chapUserName)
chapuserResp, err := suite.chapuserService.GetChapUserByName(chapUserName)
assert.Nilf(suite.T(), err, "Failed to get chap user by name %v", chapUserName)
assert.Equal(suite.T(), chapUserDescription, *chapuserResp.Description, "In-correct Description for Chap user")
require.Nilf(suite.T(), err, "Failed to get chap user by name %v", chapUserName)
require.Equal(suite.T(), chapUserDescription, *chapuserResp.Description, "In-correct Description for Chap user")
chapuserID := *chapuserResp.ID

arrayVersion := getArrayVersion(suite.arrayGroupService)
Expand All @@ -103,22 +117,23 @@ func (suite *ChapuserWorkflowSuite) TestCreateModifyDeleteChapuser() {
InitiatorIqns: initiatorList,
}
_, err = suite.chapuserService.UpdateChapUser(chapuserID, updateChapUser)
assert.Nilf(suite.T(), err, "Failed to update chap user: %v", chapUserName)
require.Nilf(suite.T(), err, "Failed to update chap user: %v", chapUserName)
_, err = suite.chapuserService.GetChapUserByName(chapUserName)
assert.Nilf(suite.T(), err, "Failed to get chap user by name: %v", chapUserName)
require.Nilf(suite.T(), err, "Failed to get chap user by name: %v", chapUserName)

// Delete Chap user with initiators associated
err = suite.chapuserService.DeleteChapUser(chapuserID)
assert.NotNilf(suite.T(), err, "Deleted chap user %v with initiators", chapUserName)
require.NotNilf(suite.T(), err, "Deleted chap user %v with initiators", chapUserName)

// Delete Initiatorgroup
err = suite.initiatorGrpService.DeleteInitiatorGroup(igID)
assert.Nilf(suite.T(), err, "Failed to delete initiator group: %v", initiatorGroupNameChap)
require.Nilf(suite.T(), err, "Failed to delete initiator group: %v", initiatorGroupNameChap)
}

// Delete Chap user
err = suite.chapuserService.DeleteChapUser(chapuserID)
assert.Nilf(suite.T(), err, "Failed to delete chap user: %v", chapUserName)
require.Nilf(suite.T(), err, "Failed to delete chap user: %v", chapUserName)
testCompleted = append(testCompleted, true)

}

Expand Down
35 changes: 25 additions & 10 deletions test/disk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"github.com/hpe-storage/nimble-golang-sdk/pkg/param"

"github.com/hpe-storage/nimble-golang-sdk/pkg/service"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
)

Expand All @@ -32,19 +32,33 @@ type DiskWorkflowSuite struct {

func (suite *DiskWorkflowSuite) SetupSuite() {
groupService, err := config()
assert.Nilf(suite.T(), err, "Could not connect to array: %v", arrayIP)
require.Nilf(suite.T(), err, "Could not connect to array: %v", arrayIP)
suite.groupService = groupService
suite.diskService = groupService.GetDiskService()
}

func (suite *DiskWorkflowSuite) TearDownSuite() {
var diskTestResult string
if len(testStarted) == len(testCompleted) {
diskTestResult = "PASS"
} else {
diskTestResult = "FAIL"
}
var postResult = *postResultToDashboard
if postResult == "true" {
pushResultToDashboard(diskTestResult, "C545227", "Disk Workflow")
}
//cleanup test result
testStarted = nil
testCompleted = nil
suite.groupService.LogoutService()
}

func (suite *DiskWorkflowSuite) TestAddRemoveDisk() {
testStarted = append(testStarted, true)
filter := &param.GetParams{}
diskResp, err := suite.diskService.GetDisks(filter)
assert.Nil(suite.T(), err, "Failed to get disk details")
require.Nil(suite.T(), err, "Failed to get disk details")
fmt.Print(*diskResp[0].State)

// Get a disk which is in use
Expand All @@ -55,30 +69,31 @@ func (suite *DiskWorkflowSuite) TestAddRemoveDisk() {
break
}
}
assert.NotEmpty(suite.T(), diskID, "No Disk found which are 'in-use'")
require.NotEmpty(suite.T(), diskID, "No Disk found which are 'in-use'")

// Remove Disk
removeDisk := &nimbleos.Disk{
DiskOp: nimbleos.NsDiskOpRemove,
}
_, err = suite.diskService.UpdateDisk(diskID, removeDisk)
assert.Nil(suite.T(), err, "Failed to Remove Disk")
require.Nil(suite.T(), err, "Failed to Remove Disk")
getDiskResp, err := suite.diskService.GetDiskById(diskID)
assert.Nil(suite.T(), err, "Failed to Get Disk details")
assert.Equal(suite.T(), nimbleos.NsDiskState("removed"), *getDiskResp.State, "Failed to Remove Disk")
require.Nil(suite.T(), err, "Failed to Get Disk details")
require.Equal(suite.T(), nimbleos.NsDiskState("removed"), *getDiskResp.State, "Failed to Remove Disk")

// Add Disk
addDisk := &nimbleos.Disk{
DiskOp: nimbleos.NsDiskOpAdd,
}
_, err = suite.diskService.UpdateDisk(diskID, addDisk)
assert.Nil(suite.T(), err, "Failed to Add Disk")
require.Nil(suite.T(), err, "Failed to Add Disk")

// Wait till the state changes from 'valid' to 'in use'
time.Sleep(2 * time.Second)
getDiskResp, err = suite.diskService.GetDiskById(diskID)
assert.Nil(suite.T(), err, "Failed to Get Disk details")
assert.Equal(suite.T(), nimbleos.NsDiskState("in use"), *getDiskResp.State, "Failed to Add Disk")
require.Nil(suite.T(), err, "Failed to Get Disk details")
require.Equal(suite.T(), nimbleos.NsDiskState("in use"), *getDiskResp.State, "Failed to Add Disk")
testCompleted = append(testCompleted, true)

}

Expand Down
40 changes: 31 additions & 9 deletions test/encryption_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
package test

import (
"testing"

"github.com/hpe-storage/nimble-golang-sdk/pkg/client/v1/nimbleos"
"github.com/hpe-storage/nimble-golang-sdk/pkg/param"
"github.com/hpe-storage/nimble-golang-sdk/pkg/service"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"testing"
)

const passphrase = "passphrase-91"
Expand All @@ -23,7 +24,7 @@ type EncryptionWorkflowSuite struct {

func (suite *EncryptionWorkflowSuite) SetupSuite() {
groupService, err := config()
assert.Nilf(suite.T(), err, "Unable to connect to group, err: %v", err)
require.Nilf(suite.T(), err, "Unable to connect to group, err: %v", err)
suite.groupService = groupService
suite.keyManagerService = groupService.GetKeyManagerService()
suite.masterKeyService = groupService.GetMasterKeyService()
Expand All @@ -32,6 +33,19 @@ func (suite *EncryptionWorkflowSuite) SetupSuite() {
}

func (suite *EncryptionWorkflowSuite) TearDownSuite() {
var encryptionTestResult string
if len(testStarted) == len(testCompleted) {
encryptionTestResult = "PASS"
} else {
encryptionTestResult = "FAIL"
}
var postResult = *postResultToDashboard
if postResult == "true" {
pushResultToDashboard(encryptionTestResult, "C545078", "Encryption workflow")
}
//cleanup test result
testStarted = nil
testCompleted = nil
suite.deleteMasterKey()
suite.groupService.LogoutService()
}
Expand All @@ -42,27 +56,30 @@ func (suite *EncryptionWorkflowSuite) createMasterKey() {
Passphrase: passphrase,
}
_, err := suite.masterKeyService.CreateMasterKey(key)
assert.Nilf(suite.T(), err, "Master key creation failed, err: %v", err)
require.Nilf(suite.T(), err, "Master key creation failed, err: %v", err)
}

func (suite *EncryptionWorkflowSuite) deleteMasterKey() {
filter := &param.GetParams{}
key, _ := suite.masterKeyService.GetMasterKeys(filter)
if len(key) != 0 {
err := suite.masterKeyService.DeleteMasterKey(*key[0].ID)
assert.Nilf(suite.T(), err, "Unable to delete key, err: %v", err)
require.Nilf(suite.T(), err, "Unable to delete key, err: %v", err)
}
}

func (suite *EncryptionWorkflowSuite) TestCreateMasterKeyDuplicate() {
testStarted = append(testStarted, true)
key := &nimbleos.MasterKey{
Passphrase: param.NewString("passphrase1"),
}
_, err := suite.masterKeyService.CreateMasterKey(key)
assert.NotNil(suite.T(), err, "Master key creation when one exists should have failed")
require.NotNil(suite.T(), err, "Master key creation when one exists should have failed")
testCompleted = append(testCompleted, true)
}

func (suite *EncryptionWorkflowSuite) TestMasterKeyChangePassphrase() {
testStarted = append(testStarted, true)
var newPassphrase *string = param.NewString(newPassphrase)
filter := &param.GetParams{}
key, _ := suite.masterKeyService.GetMasterKeys(filter)
Expand All @@ -71,26 +88,31 @@ func (suite *EncryptionWorkflowSuite) TestMasterKeyChangePassphrase() {
NewPassphrase: newPassphrase,
}
_, err := suite.masterKeyService.UpdateMasterKey(*key[0].ID, updateKey)
assert.Nilf(suite.T(), err, "Unable to update master key, err: %v", err)
require.Nilf(suite.T(), err, "Unable to update master key, err: %v", err)
testCompleted = append(testCompleted, true)
}

func (suite *EncryptionWorkflowSuite) TestMasterKeyUpdateInactive() {
testStarted = append(testStarted, true)
filter := &param.GetParams{}
key, _ := suite.masterKeyService.GetMasterKeys(filter)
updateKey := &nimbleos.MasterKey{
Passphrase: param.NewString(newPassphrase),
Active: param.NewBool(false),
}
_, err := suite.masterKeyService.UpdateMasterKey(*key[0].ID, updateKey)
assert.Nilf(suite.T(), err, "Unable to set master key to inactive, err: %v", err)
require.Nilf(suite.T(), err, "Unable to set master key to inactive, err: %v", err)
testCompleted = append(testCompleted, true)
}

func (suite *EncryptionWorkflowSuite) TestPurgeKey() {
testStarted = append(testStarted, true)
filter := &param.GetParams{}
key, _ := suite.masterKeyService.GetMasterKeys(filter)
var age int = 0
err := suite.masterKeyService.PurgeInactiveMasterKey(*key[0].ID, &age)
assert.Nilf(suite.T(), err, "Unable to purge inactive key, err: %v", err)
require.Nilf(suite.T(), err, "Unable to purge inactive key, err: %v", err)
testCompleted = append(testCompleted, true)
}

func TestEncryptionWorkflowSuite(t *testing.T) {
Expand Down
Loading