Skip to content

Commit

Permalink
Add On-prem Check For NSG/NAG (#535)
Browse files Browse the repository at this point in the history
* Add On-prem Check For NSG/NAG

* Update message
  • Loading branch information
michaelkad committed Feb 10, 2025
1 parent 4bdeeba commit 4f69f05
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
28 changes: 28 additions & 0 deletions clients/instance/ibm-pi-network-address-group.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ func NewIBMPINetworkAddressGroupClient(ctx context.Context, sess *ibmpisession.I

// Create a new Network Address Group
func (f *IBMPINetworkAddressGroupClient) Create(body *models.NetworkAddressGroupCreate) (*models.NetworkAddressGroup, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_address_groups.NewV1NetworkAddressGroupsPostParams().WithContext(f.ctx).WithTimeout(helpers.PICreateTimeOut).WithBody(body)
postok, postcreated, err := f.session.Power.NetworkAddressGroups.V1NetworkAddressGroupsPost(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -40,6 +44,10 @@ func (f *IBMPINetworkAddressGroupClient) Create(body *models.NetworkAddressGroup

// Get the list of Network Address Groups for a workspace
func (f *IBMPINetworkAddressGroupClient) GetAll() (*models.NetworkAddressGroups, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_address_groups.NewV1NetworkAddressGroupsGetParams().WithContext(f.ctx).WithTimeout(helpers.PIGetTimeOut)
resp, err := f.session.Power.NetworkAddressGroups.V1NetworkAddressGroupsGet(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -54,6 +62,10 @@ func (f *IBMPINetworkAddressGroupClient) GetAll() (*models.NetworkAddressGroups,

// Get the detail of a Network Address Group
func (f *IBMPINetworkAddressGroupClient) Get(id string) (*models.NetworkAddressGroup, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_address_groups.NewV1NetworkAddressGroupsIDGetParams().WithContext(f.ctx).WithTimeout(helpers.PIGetTimeOut).WithNetworkAddressGroupID(id)
resp, err := f.session.Power.NetworkAddressGroups.V1NetworkAddressGroupsIDGet(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -68,6 +80,10 @@ func (f *IBMPINetworkAddressGroupClient) Get(id string) (*models.NetworkAddressG

// Update a Network Address Group
func (f *IBMPINetworkAddressGroupClient) Update(id string, body *models.NetworkAddressGroupUpdate) (*models.NetworkAddressGroup, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_address_groups.NewV1NetworkAddressGroupsIDPutParams().WithContext(f.ctx).WithTimeout(helpers.PIUpdateTimeOut).WithNetworkAddressGroupID(id).WithBody(body)
resp, err := f.session.Power.NetworkAddressGroups.V1NetworkAddressGroupsIDPut(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -81,6 +97,10 @@ func (f *IBMPINetworkAddressGroupClient) Update(id string, body *models.NetworkA

// Delete a Network Address Group from a workspace
func (f *IBMPINetworkAddressGroupClient) Delete(id string) error {
// Add check for on-prem location
if f.session.IsOnPrem() {
return fmt.Errorf("operation not supported in satellite location.")
}
params := network_address_groups.NewV1NetworkAddressGroupsIDDeleteParams().WithContext(f.ctx).WithTimeout(helpers.PIDeleteTimeOut).WithNetworkAddressGroupID(id)
_, err := f.session.Power.NetworkAddressGroups.V1NetworkAddressGroupsIDDelete(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -91,6 +111,10 @@ func (f *IBMPINetworkAddressGroupClient) Delete(id string) error {

// Add a member to a Network Address Group
func (f *IBMPINetworkAddressGroupClient) AddMember(id string, body *models.NetworkAddressGroupAddMember) (*models.NetworkAddressGroupMember, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_address_groups.NewV1NetworkAddressGroupsMembersPostParams().WithContext(f.ctx).WithTimeout(helpers.PICreateTimeOut).WithNetworkAddressGroupID(id).WithBody(body)
resp, err := f.session.Power.NetworkAddressGroups.V1NetworkAddressGroupsMembersPost(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -104,6 +128,10 @@ func (f *IBMPINetworkAddressGroupClient) AddMember(id string, body *models.Netwo

// Delete the member from a Network Address Group
func (f *IBMPINetworkAddressGroupClient) DeleteMember(id, memberId string) error {
// Add check for on-prem location
if f.session.IsOnPrem() {
return fmt.Errorf("operation not supported in satellite location.")
}
params := network_address_groups.NewV1NetworkAddressGroupsMembersDeleteParams().WithContext(f.ctx).WithTimeout(helpers.PIDeleteTimeOut).WithNetworkAddressGroupID(id).WithNetworkAddressGroupMemberID(memberId)
_, err := f.session.Power.NetworkAddressGroups.V1NetworkAddressGroupsMembersDelete(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand Down
40 changes: 40 additions & 0 deletions clients/instance/ibm-pi-network-security-group.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ func NewIBMIPINetworkSecurityGroupClient(ctx context.Context, sess *ibmpisession

// Get a network security group
func (f *IBMPINetworkSecurityGroupClient) Get(id string) (*models.NetworkSecurityGroup, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsIDGetParams().WithContext(f.ctx).WithTimeout(helpers.PIGetTimeOut).WithNetworkSecurityGroupID(id)
resp, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsIDGet(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -37,6 +41,10 @@ func (f *IBMPINetworkSecurityGroupClient) Get(id string) (*models.NetworkSecurit

// Get all network security groups
func (f *IBMPINetworkSecurityGroupClient) GetAll() (*models.NetworkSecurityGroups, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsListParams().WithContext(f.ctx).WithTimeout(helpers.PIGetTimeOut)
resp, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsList(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -50,6 +58,10 @@ func (f *IBMPINetworkSecurityGroupClient) GetAll() (*models.NetworkSecurityGroup

// Create a network security group
func (f *IBMPINetworkSecurityGroupClient) Create(body *models.NetworkSecurityGroupCreate) (*models.NetworkSecurityGroup, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsPostParams().WithContext(f.ctx).WithTimeout(helpers.PICreateTimeOut).WithBody(body)
postok, postcreated, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsPost(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -66,6 +78,10 @@ func (f *IBMPINetworkSecurityGroupClient) Create(body *models.NetworkSecurityGro

// Update a network security group
func (f *IBMPINetworkSecurityGroupClient) Update(id string, body *models.NetworkSecurityGroupUpdate) (*models.NetworkSecurityGroup, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsIDPutParams().WithContext(f.ctx).WithTimeout(helpers.PIUpdateTimeOut).WithNetworkSecurityGroupID(id).WithBody(body)
resp, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsIDPut(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -79,6 +95,10 @@ func (f *IBMPINetworkSecurityGroupClient) Update(id string, body *models.Network

// Delete a network security group
func (f *IBMPINetworkSecurityGroupClient) Delete(id string) error {
// Add check for on-prem location
if f.session.IsOnPrem() {
return fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsIDDeleteParams().WithContext(f.ctx).WithTimeout(helpers.PIDeleteTimeOut).WithNetworkSecurityGroupID(id)
_, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsIDDelete(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -89,6 +109,10 @@ func (f *IBMPINetworkSecurityGroupClient) Delete(id string) error {

// Add a member to a network security group
func (f *IBMPINetworkSecurityGroupClient) AddMember(id string, body *models.NetworkSecurityGroupAddMember) (*models.NetworkSecurityGroupMember, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsMembersPostParams().WithContext(f.ctx).WithTimeout(helpers.PICreateTimeOut).WithNetworkSecurityGroupID(id).WithBody(body)
resp, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsMembersPost(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -102,6 +126,10 @@ func (f *IBMPINetworkSecurityGroupClient) AddMember(id string, body *models.Netw

// Deleta a member from a network securti group
func (f *IBMPINetworkSecurityGroupClient) DeleteMember(id, memberId string) error {
// Add check for on-prem location
if f.session.IsOnPrem() {
return fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsMembersDeleteParams().WithContext(f.ctx).WithTimeout(helpers.PIDeleteTimeOut).WithNetworkSecurityGroupID(id).WithNetworkSecurityGroupMemberID(memberId)
_, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsMembersDelete(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -112,6 +140,10 @@ func (f *IBMPINetworkSecurityGroupClient) DeleteMember(id, memberId string) erro

// Add a rule to a network security group
func (f *IBMPINetworkSecurityGroupClient) AddRule(id string, body *models.NetworkSecurityGroupAddRule) (*models.NetworkSecurityGroupRule, error) {
// Add check for on-prem location
if f.session.IsOnPrem() {
return nil, fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsRulesPostParams().WithContext(f.ctx).WithTimeout(helpers.PICreateTimeOut).WithNetworkSecurityGroupID(id).WithBody(body)
resp, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsRulesPost(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -125,6 +157,10 @@ func (f *IBMPINetworkSecurityGroupClient) AddRule(id string, body *models.Networ

// Delete a rule from a network security group
func (f *IBMPINetworkSecurityGroupClient) DeleteRule(id, ruleId string) error {
// Add check for on-prem location
if f.session.IsOnPrem() {
return fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsRulesDeleteParams().WithContext(f.ctx).WithTimeout(helpers.PIDeleteTimeOut).WithNetworkSecurityGroupID(id).WithNetworkSecurityGroupRuleID(ruleId)
_, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsRulesDelete(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand All @@ -135,6 +171,10 @@ func (f *IBMPINetworkSecurityGroupClient) DeleteRule(id, ruleId string) error {

// Action on a network security group
func (f *IBMPINetworkSecurityGroupClient) Action(body *models.NetworkSecurityGroupsAction) error {
// Add check for on-prem location
if f.session.IsOnPrem() {
return fmt.Errorf("operation not supported in satellite location.")
}
params := network_security_groups.NewV1NetworkSecurityGroupsActionPostParams().WithContext(f.ctx).WithTimeout(helpers.PICreateTimeOut).WithBody(body)
_, _, err := f.session.Power.NetworkSecurityGroups.V1NetworkSecurityGroupsActionPost(params, f.session.AuthInfo(f.cloudInstanceID))
if err != nil {
Expand Down

0 comments on commit 4f69f05

Please sign in to comment.