Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IBM: Support zone setting for IBM Driver #1169

Merged
merged 2 commits into from
Apr 17, 2024
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func (diskHandler *IbmDiskHandler) CreateDisk(diskReqInfo irs.DiskInfo) (irs.Dis
Name: &diskReqInfo.DiskType,
},
Zone: &vpcv1.ZoneIdentity{
Name: &diskHandler.Region.Zone,
Name: &diskReqInfo.Zone,
},
Name: &diskReqInfo.IId.NameId,
Capacity: ptrCapacity,
Expand Down Expand Up @@ -293,6 +293,7 @@ func (diskHandler *IbmDiskHandler) ToIRSDisk(disk *vpcv1.Volume) *irs.DiskInfo {
SystemId: *disk.ID,
NameId: *disk.Name,
},
Zone: *disk.Zone.Name,
DiskType: *disk.Profile.Name,
DiskSize: strCapacity,
Status: diskStatus,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func (vpcHandler *IbmVPCHandler) CreateVPC(vpcReqInfo irs.VPCReqInfo) (irs.VPCIn
}

if vpcHandler.Region.Zone == "" {
createErr := errors.New(fmt.Sprintf("Failed to Create VPC err = not exist Zone"))
createErr := errors.New(fmt.Sprintf("Failed to Create VPC err = Zone is not provided"))
cblogger.Error(createErr.Error())
LoggingError(hiscallInfo, createErr)
return irs.VPCInfo{}, createErr
Expand All @@ -63,7 +63,7 @@ func (vpcHandler *IbmVPCHandler) CreateVPC(vpcReqInfo irs.VPCReqInfo) (irs.VPCIn
return irs.VPCInfo{}, createErr
}
if exist {
createErr := errors.New(fmt.Sprintf("Failed to Create VPC err = already exist VPC"))
createErr := errors.New(fmt.Sprintf("Failed to Create VPC err = VPC is already exist"))
cblogger.Error(createErr.Error())
LoggingError(hiscallInfo, createErr)
return irs.VPCInfo{}, createErr
Expand All @@ -84,13 +84,19 @@ func (vpcHandler *IbmVPCHandler) CreateVPC(vpcReqInfo irs.VPCReqInfo) (irs.VPCIn
NameId: *vpc.Name,
SystemId: *vpc.ID,
}
if len(vpcReqInfo.SubnetInfoList) == 0 {
createErr := errors.New("Failed to Create VPC err = Subnet info list is not provided")
cblogger.Error(createErr.Error())
LoggingError(hiscallInfo, createErr)
return irs.VPCInfo{}, createErr
}
// createVPCAddressPrefix
createVPCAddressPrefixOptions := &vpcv1.CreateVPCAddressPrefixOptions{}
createVPCAddressPrefixOptions.SetVPCID(newVpcIId.SystemId)
createVPCAddressPrefixOptions.SetCIDR(vpcReqInfo.IPv4_CIDR)
createVPCAddressPrefixOptions.SetName(newVpcIId.NameId)
createVPCAddressPrefixOptions.SetZone(&vpcv1.ZoneIdentity{
Name: core.StringPtr(vpcHandler.Region.Zone),
Name: core.StringPtr(vpcReqInfo.SubnetInfoList[0].Zone),
})
_, _, err = vpcHandler.VpcService.CreateVPCAddressPrefixWithContext(vpcHandler.Ctx, createVPCAddressPrefixOptions)
// createVPCAddressPrefix error
Expand Down Expand Up @@ -407,10 +413,6 @@ func attachSubnet(vpc vpcv1.VPC, subnetInfo irs.SubnetInfo, vpcService *vpcv1.Vp
err = errors.New(fmt.Sprintf("already exist %s", subnetInfo.IId.NameId))
return err
}
zone, err := getFirstVPCZone(vpc, vpcService, ctx)
if err != nil {
return err
}
options := &vpcv1.CreateSubnetOptions{}
options.SetSubnetPrototype(&vpcv1.SubnetPrototype{
Ipv4CIDRBlock: core.StringPtr(subnetInfo.IPv4_CIDR),
Expand All @@ -419,7 +421,7 @@ func attachSubnet(vpc vpcv1.VPC, subnetInfo irs.SubnetInfo, vpcService *vpcv1.Vp
ID: vpc.ID,
},
Zone: &vpcv1.ZoneIdentity{
Name: &zone,
Name: &subnetInfo.Zone,
},
})
_, _, err = vpcService.CreateSubnetWithContext(ctx, options)
Expand Down Expand Up @@ -572,21 +574,6 @@ func GetRawVPC(vpcIID irs.IID, vpcService *vpcv1.VpcV1, ctx context.Context) (vp
}
}

func getFirstVPCZone(vpc vpcv1.VPC, vpcService *vpcv1.VpcV1, ctx context.Context) (string, error) {
// get first AddressPrefix Zone
listVpcAddressPrefixesOptions := &vpcv1.ListVPCAddressPrefixesOptions{}
listVpcAddressPrefixesOptions.SetVPCID(*vpc.ID)
addressPrefixes, _, err := vpcService.ListVPCAddressPrefixesWithContext(ctx, listVpcAddressPrefixesOptions)
if err != nil {
return "", err
}
if *addressPrefixes.TotalCount > 0 {
return *addressPrefixes.AddressPrefixes[0].Zone.Name, nil
}
err = errors.New("VPC not found FirstVPCZone")
return "", err
}

func getVPCRawSubnets(vpc vpcv1.VPC, vpcService *vpcv1.VpcV1, ctx context.Context) ([]vpcv1.Subnet, error) {
options := &vpcv1.ListSubnetsOptions{}
subnets, _, err := vpcService.ListSubnetsWithContext(ctx, options)
Expand Down Expand Up @@ -679,6 +666,7 @@ func setVPCInfo(vpc vpcv1.VPC, vpcService *vpcv1.VpcV1, ctx context.Context) (ir
NameId: *subnet.Name,
SystemId: *subnet.ID,
},
Zone: *subnet.Zone.Name,
IPv4_CIDR: *subnet.Ipv4CIDRBlock,
}
newSubnetInfos = append(newSubnetInfos, subnetInfo)
Expand Down
Loading