Skip to content

Commit

Permalink
Merge pull request #1465 from ish-hcc/fix_openstack_vpc
Browse files Browse the repository at this point in the history
OpenStack: Add new subnet to the router
  • Loading branch information
powerkimhub authored Feb 10, 2025
2 parents 24e117f + 56f441c commit 51484fc
Showing 1 changed file with 39 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -438,27 +438,60 @@ func (vpcHandler *OpenStackVPCHandler) DeleteInterface(subnetId string, routerId
return true, nil
}

func (vpcHandler *OpenStackVPCHandler) AddSubnetInterfaceToVPCRouter(vpcName string, subnetID string) error {
routerId, err := vpcHandler.GetRouter(vpcName)
if err != nil {
return err
}

addOpts := routers.AddInterfaceOpts{
SubnetID: subnetID,
}

_, err = routers.AddInterface(vpcHandler.NetworkClient, *routerId, addOpts).Extract()
if err != nil {
return fmt.Errorf("failed to add interface to router: %v", err)
}

return nil
}

func (vpcHandler *OpenStackVPCHandler) AddSubnet(vpcIID irs.IID, subnetInfo irs.SubnetInfo) (irs.VPCInfo, error) {
// log HisCall
hiscallInfo := GetCallLogScheme(vpcHandler.NetworkClient.IdentityEndpoint, call.VPCSUBNET, subnetInfo.IId.NameId, "AddSubnet()")

vpc, err := vpcHandler.GetVPC(vpcIID)
if err != nil {
addSubnetErr := errors.New(fmt.Sprintf("Failed to Add Subnet err = %s", err.Error()))
cblogger.Error(addSubnetErr.Error())
LoggingError(hiscallInfo, addSubnetErr)
return irs.VPCInfo{}, addSubnetErr
}

subnetCreateOpts := subnets.CreateOpts{
NetworkID: vpcIID.SystemId,
NetworkID: vpc.IId.SystemId,
Name: subnetInfo.IId.NameId,
CIDR: subnetInfo.IPv4_CIDR,
IPVersion: gophercloud.IPv4,
DNSNameservers: []string{DNSNameservers},
}

start := call.Start()
_, err := subnets.Create(vpcHandler.NetworkClient, subnetCreateOpts).Extract()
subnet, err := subnets.Create(vpcHandler.NetworkClient, subnetCreateOpts).Extract()
if err != nil {
addSubnetErr := errors.New(fmt.Sprintf("Failed to Add Subnet err = %s", err.Error()))
cblogger.Error(addSubnetErr.Error())
LoggingError(hiscallInfo, addSubnetErr)
return irs.VPCInfo{}, addSubnetErr
}

err = vpcHandler.AddSubnetInterfaceToVPCRouter(vpc.IId.NameId, subnet.ID)
if err != nil {
addSubnetErr := errors.New(fmt.Sprintf("Failed to Add Subnet err = %s", err.Error()))
cblogger.Error(addSubnetErr.Error())
LoggingError(hiscallInfo, addSubnetErr)
return irs.VPCInfo{}, addSubnetErr
}
LoggingInfo(hiscallInfo, start)

result, err := vpcHandler.GetVPC(vpcIID)
if err != nil {
Expand All @@ -467,6 +500,9 @@ func (vpcHandler *OpenStackVPCHandler) AddSubnet(vpcIID irs.IID, subnetInfo irs.
LoggingError(hiscallInfo, addSubnetErr)
return irs.VPCInfo{}, addSubnetErr
}

LoggingInfo(hiscallInfo, start)

return result, nil
}

Expand Down

0 comments on commit 51484fc

Please sign in to comment.