Skip to content

Commit

Permalink
enhancemnet(bare metal): support for z systems
Browse files Browse the repository at this point in the history
  • Loading branch information
uibm committed Mar 3, 2023
1 parent bc80162 commit f64b5eb
Show file tree
Hide file tree
Showing 9 changed files with 844 additions and 16 deletions.
26 changes: 26 additions & 0 deletions ibm/service/vpc/data_source_ibm_is_bare_metal_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,19 @@ func dataSourceIBMISBareMetalServerRead(context context.Context, d *schema.Resou
currentPrimNic[isInstanceNicAllowIPSpoofing] = *primNic.AllowIPSpoofing
currentPrimNic[isBareMetalServerNicPortSpeed] = *primNic.PortSpeed

if len(primNic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(primNic.SecurityGroups); i++ {
secgrpList = append(secgrpList, string(*(primNic.SecurityGroups[i].ID)))
}
currentPrimNic[isInstanceNicSecurityGroups] = flex.NewStringSet(schema.HashString, secgrpList)
}
}
case "*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket":
{
primNic := bmsnic.(*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket)
currentPrimNic[isInstanceNicAllowIPSpoofing] = *primNic.AllowIPSpoofing

if len(primNic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(primNic.SecurityGroups); i++ {
Expand Down Expand Up @@ -645,6 +658,19 @@ func dataSourceIBMISBareMetalServerRead(context context.Context, d *schema.Resou
currentNic[isBareMetalServerNicSecurityGroups] = flex.NewStringSet(schema.HashString, secgrpList)
}
}
case "*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket":
{
bmsnic := bmsnicintf.(*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket)
currentNic[isBareMetalServerNicAllowIPSpoofing] = *bmsnic.AllowIPSpoofing
currentNic[isBareMetalServerNicSubnet] = *bmsnic.Subnet.ID
if len(bmsnic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(bmsnic.SecurityGroups); i++ {
secgrpList = append(secgrpList, string(*(bmsnic.SecurityGroups[i].ID)))
}
currentNic[isBareMetalServerNicSecurityGroups] = flex.NewStringSet(schema.HashString, secgrpList)
}
}
}
interfacesList = append(interfacesList, currentNic)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,67 @@ func dataSourceIBMISBareMetalServerNetworkInterfaceRead(context context.Context,
d.Set(isBareMetalServerNicAllowInterfaceToFloat, *nic.AllowInterfaceToFloat)
d.Set(isBareMetalServerNicVlan, *nic.Vlan)
}
case "*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket":
{
nic := nicIntf.(*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket)
d.SetId(*nic.ID)
d.Set(isBareMetalServerNicAllowIPSpoofing, *nic.AllowIPSpoofing)
d.Set(isBareMetalServerNicEnableInfraNAT, *nic.EnableInfrastructureNat)

floatingIPList := make([]map[string]interface{}, 0)
if nic.FloatingIps != nil {
for _, ip := range nic.FloatingIps {
currentIP := map[string]interface{}{
isBareMetalServerNicIpID: *ip.ID,
isBareMetalServerNicIpAddress: *ip.Address,
}
floatingIPList = append(floatingIPList, currentIP)
}
}
d.Set(isBareMetalServerNicFloatingIPs, floatingIPList)

d.Set(isBareMetalServerNicHref, *nic.Href)
d.Set(isBareMetalServerNicID, *nic.ID)
d.Set(isBareMetalServerNicInterfaceType, *nic.InterfaceType)

d.Set(isBareMetalServerNicMacAddress, *nic.MacAddress)
d.Set(isBareMetalServerNicName, *nic.Name)
d.Set(isBareMetalServerNicPortSpeed, *nic.PortSpeed)

primaryIpList := make([]map[string]interface{}, 0)
currentIP := map[string]interface{}{}
if nic.PrimaryIP.Href != nil {
currentIP[isBareMetalServerNicIpAddress] = *nic.PrimaryIP.Address
}
if nic.PrimaryIP.Href != nil {
currentIP[isBareMetalServerNicIpHref] = *nic.PrimaryIP.Href
}
if nic.PrimaryIP.Name != nil {
currentIP[isBareMetalServerNicIpName] = *nic.PrimaryIP.Name
}
if nic.PrimaryIP.ID != nil {
currentIP[isBareMetalServerNicIpID] = *nic.PrimaryIP.ID
}
if nic.PrimaryIP.ResourceType != nil {
currentIP[isBareMetalServerNicResourceType] = *nic.PrimaryIP.ResourceType
}
primaryIpList = append(primaryIpList, currentIP)
d.Set(isBareMetalServerNicPrimaryIP, primaryIpList)

d.Set(isBareMetalServerNicResourceType, *nic.ResourceType)

if len(nic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(nic.SecurityGroups); i++ {
secgrpList = append(secgrpList, string(*(nic.SecurityGroups[i].ID)))
}
d.Set(isBareMetalServerNicSecurityGroups, flex.NewStringSet(schema.HashString, secgrpList))
}

d.Set(isBareMetalServerNicStatus, *nic.Status)
d.Set(isBareMetalServerNicSubnet, *nic.Subnet.ID)
d.Set(isBareMetalServerNicType, *nic.Type)
}
}
return nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,62 @@ func dataSourceIBMISBareMetalServerNetworkInterfacesRead(context context.Context
l[isBareMetalServerNicAllowInterfaceToFloat] = *nic.AllowInterfaceToFloat
l[isBareMetalServerNicVlan] = *nic.Vlan
}
case "*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket":
{
nic := nicIntf.(*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket)
l[isBareMetalServerNicAllowIPSpoofing] = *nic.AllowIPSpoofing
l[isBareMetalServerNicEnableInfraNAT] = *nic.EnableInfrastructureNat
if nic.FloatingIps != nil {
floatingIPList := make([]map[string]interface{}, 0)
for _, ip := range nic.FloatingIps {
currentIP := map[string]interface{}{
isBareMetalServerNicIpID: *ip.ID,
isBareMetalServerNicIpAddress: *ip.Address,
}
floatingIPList = append(floatingIPList, currentIP)
}
l[isBareMetalServerNicFloatingIPs] = floatingIPList
}
l[isBareMetalServerNicHref] = *nic.Href
l[isBareMetalServerNicInterfaceType] = *nic.InterfaceType
l[isBareMetalServerNicMacAddress] = *nic.MacAddress
l[isBareMetalServerNicName] = *nic.Name
if nic.PortSpeed != nil {
l[isBareMetalServerNicPortSpeed] = *nic.PortSpeed
}

primaryIpList := make([]map[string]interface{}, 0)
currentIP := map[string]interface{}{}
if nic.PrimaryIP.Href != nil {
currentIP[isBareMetalServerNicIpAddress] = *nic.PrimaryIP.Address
}
if nic.PrimaryIP.Href != nil {
currentIP[isBareMetalServerNicIpHref] = *nic.PrimaryIP.Href
}
if nic.PrimaryIP.Name != nil {
currentIP[isBareMetalServerNicIpName] = *nic.PrimaryIP.Name
}
if nic.PrimaryIP.ID != nil {
currentIP[isBareMetalServerNicIpID] = *nic.PrimaryIP.ID
}
if nic.PrimaryIP.ResourceType != nil {
currentIP[isBareMetalServerNicResourceType] = *nic.PrimaryIP.ResourceType
}
primaryIpList = append(primaryIpList, currentIP)
l[isBareMetalServerNicPrimaryIP] = primaryIpList
l[isBareMetalServerNicResourceType] = *nic.ResourceType
if nic.SecurityGroups != nil && len(nic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(nic.SecurityGroups); i++ {
secgrpList = append(secgrpList, string(*(nic.SecurityGroups[i].ID)))
}
l[isBareMetalServerNicSecurityGroups] = flex.NewStringSet(schema.HashString, secgrpList)
}
l[isBareMetalServerNicStatus] = *nic.Status
l[isBareMetalServerNicSubnet] = *nic.Subnet.ID
l[isBareMetalServerNicType] = *nic.Type
l["id"] = *nic.ID
}
}
nicsInfo = append(nicsInfo, l)
}
Expand Down
26 changes: 26 additions & 0 deletions ibm/service/vpc/data_source_ibm_is_bare_metal_servers.go
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,19 @@ func dataSourceIBMISBareMetalServersRead(context context.Context, d *schema.Reso
currentPrimNic[isInstanceNicAllowIPSpoofing] = *primNic.AllowIPSpoofing
currentPrimNic[isBareMetalServerNicPortSpeed] = *primNic.PortSpeed

if len(primNic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(primNic.SecurityGroups); i++ {
secgrpList = append(secgrpList, string(*(primNic.SecurityGroups[i].ID)))
}
currentPrimNic[isInstanceNicSecurityGroups] = flex.NewStringSet(schema.HashString, secgrpList)
}
}
case "*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket":
{
primNic := bmsnic.(*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket)
currentPrimNic[isInstanceNicAllowIPSpoofing] = *primNic.AllowIPSpoofing

if len(primNic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(primNic.SecurityGroups); i++ {
Expand Down Expand Up @@ -663,6 +676,19 @@ func dataSourceIBMISBareMetalServersRead(context context.Context, d *schema.Reso
currentNic[isBareMetalServerNicSecurityGroups] = flex.NewStringSet(schema.HashString, secgrpList)
}
}
case "*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket":
{
bmsnic := bmsnicintf.(*vpcv1.BareMetalServerNetworkInterfaceByHiperSocket)
currentNic[isBareMetalServerNicAllowIPSpoofing] = *bmsnic.AllowIPSpoofing
currentNic[isBareMetalServerNicSubnet] = *bmsnic.Subnet.ID
if len(bmsnic.SecurityGroups) != 0 {
secgrpList := []string{}
for i := 0; i < len(bmsnic.SecurityGroups); i++ {
secgrpList = append(secgrpList, string(*(bmsnic.SecurityGroups[i].ID)))
}
currentNic[isBareMetalServerNicSecurityGroups] = flex.NewStringSet(schema.HashString, secgrpList)
}
}
}
interfacesList = append(interfacesList, currentNic)
}
Expand Down
Loading

0 comments on commit f64b5eb

Please sign in to comment.