mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-23 06:38:50 +00:00
fix return value when associating nsg subner (#2201)
This commit is contained in:
@ -68,9 +68,9 @@ public class TimerProxy {
|
|||||||
var subnet = await network.GetSubnet();
|
var subnet = await network.GetSubnet();
|
||||||
var vnet = await network.GetVnet();
|
var vnet = await network.GetVnet();
|
||||||
if (subnet != null && vnet != null) {
|
if (subnet != null && vnet != null) {
|
||||||
var error = nsgOpertions.AssociateSubnet(region, vnet, subnet);
|
var result = await nsgOpertions.AssociateSubnet(region, vnet, subnet);
|
||||||
if (error != null) {
|
if (!result.OkV) {
|
||||||
_logger.Error($"Failed to associate NSG and subnet due to {error} in region {region}");
|
_logger.Error($"Failed to associate NSG and subnet due to {result.ErrorV} in region {region}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ using Azure.ResourceManager.Network;
|
|||||||
namespace Microsoft.OneFuzz.Service {
|
namespace Microsoft.OneFuzz.Service {
|
||||||
public interface INsgOperations {
|
public interface INsgOperations {
|
||||||
Async.Task<NetworkSecurityGroupResource?> GetNsg(string name);
|
Async.Task<NetworkSecurityGroupResource?> GetNsg(string name);
|
||||||
public Async.Task<Error?> AssociateSubnet(string name, VirtualNetworkResource vnet, SubnetResource subnet);
|
public Async.Task<OneFuzzResult<bool>> AssociateSubnet(string name, VirtualNetworkResource vnet, SubnetResource subnet);
|
||||||
IAsyncEnumerable<NetworkSecurityGroupResource> ListNsgs();
|
IAsyncEnumerable<NetworkSecurityGroupResource> ListNsgs();
|
||||||
bool OkToDelete(HashSet<string> active_regions, string nsg_region, string nsg_name);
|
bool OkToDelete(HashSet<string> active_regions, string nsg_region, string nsg_name);
|
||||||
Async.Task<bool> StartDeleteNsg(string name);
|
Async.Task<bool> StartDeleteNsg(string name);
|
||||||
@ -25,25 +25,29 @@ namespace Microsoft.OneFuzz.Service {
|
|||||||
_logTracer = logTracer;
|
_logTracer = logTracer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Async.Task<Error?> AssociateSubnet(string name, VirtualNetworkResource vnet, SubnetResource subnet) {
|
public async Async.Task<OneFuzzResult<bool>> AssociateSubnet(string name, VirtualNetworkResource vnet, SubnetResource subnet) {
|
||||||
var nsg = await GetNsg(name);
|
var nsg = await GetNsg(name);
|
||||||
if (nsg == null) {
|
if (nsg == null) {
|
||||||
return new Error(ErrorCode.UNABLE_TO_FIND, new[] { $"cannot associate subnet. nsg {name} not found" });
|
return OneFuzzResult<bool>.Error(new Error(ErrorCode.UNABLE_TO_FIND,
|
||||||
|
new[] { $"cannot associate subnet. nsg {name} not found" }));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nsg.Data.Location != vnet.Data.Location) {
|
if (nsg.Data.Location != vnet.Data.Location) {
|
||||||
return new Error(ErrorCode.UNABLE_TO_UPDATE, new[] { $"subnet and nsg have to be in the same region. nsg {nsg.Data.Name} {nsg.Data.Location}, subnet: {subnet.Data.Name} {subnet.Data}" });
|
return OneFuzzResult<bool>.Error(new Error(ErrorCode.UNABLE_TO_UPDATE,
|
||||||
|
new[] {
|
||||||
|
$"subnet and nsg have to be in the same region. nsg {nsg.Data.Name} {nsg.Data.Location}, subnet: {subnet.Data.Name} {subnet.Data}"
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (subnet.Data.NetworkSecurityGroup != null && subnet.Data.NetworkSecurityGroup.Id == nsg.Id) {
|
if (subnet.Data.NetworkSecurityGroup != null && subnet.Data.NetworkSecurityGroup.Id == nsg.Id) {
|
||||||
_logTracer.Info($"Subnet {subnet.Data.Name} and NSG {name} already associated, not updating");
|
_logTracer.Info($"Subnet {subnet.Data.Name} and NSG {name} already associated, not updating");
|
||||||
return null;
|
return OneFuzzResult<bool>.Ok(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
subnet.Data.NetworkSecurityGroup = nsg.Data;
|
subnet.Data.NetworkSecurityGroup = nsg.Data;
|
||||||
var result = await vnet.GetSubnets().CreateOrUpdateAsync(WaitUntil.Started, subnet.Data.Name, subnet.Data);
|
var result = await vnet.GetSubnets().CreateOrUpdateAsync(WaitUntil.Started, subnet.Data.Name, subnet.Data);
|
||||||
return null;
|
return OneFuzzResult<bool>.Ok(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Async.Task<OneFuzzResultVoid> DissociateNic(Nsg nsg, NetworkInterfaceResource nic) {
|
public async Async.Task<OneFuzzResultVoid> DissociateNic(Nsg nsg, NetworkInterfaceResource nic) {
|
||||||
|
Reference in New Issue
Block a user