cs-codex-dist-tests/KubernetesWorkflow/RunningPod.cs

57 lines
1.6 KiB
C#
Raw Normal View History

2023-04-12 11:53:55 +00:00
namespace KubernetesWorkflow
{
public class RunningPod
{
2023-06-27 13:28:00 +00:00
public RunningPod(K8sCluster cluster, PodInfo podInfo, string deploymentName, string serviceName, ContainerRecipePortMapEntry[] portMapEntries)
2023-04-12 11:53:55 +00:00
{
Cluster = cluster;
PodInfo = podInfo;
2023-04-13 09:07:36 +00:00
DeploymentName = deploymentName;
ServiceName = serviceName;
2023-06-27 13:28:00 +00:00
PortMapEntries = portMapEntries;
2023-04-12 11:53:55 +00:00
}
public K8sCluster Cluster { get; }
public PodInfo PodInfo { get; }
2023-06-27 13:28:00 +00:00
public ContainerRecipePortMapEntry[] PortMapEntries { get; }
2023-04-13 09:07:36 +00:00
internal string DeploymentName { get; }
internal string ServiceName { get; }
2023-04-12 11:53:55 +00:00
public Port[] GetServicePortsForContainerRecipe(ContainerRecipe containerRecipe)
{
2023-06-27 13:28:00 +00:00
if (PortMapEntries.Any(p => p.ContainerNumber == containerRecipe.Number))
{
return PortMapEntries.Single(p => p.ContainerNumber == containerRecipe.Number).Ports;
}
return Array.Empty<Port>();
}
}
public class ContainerRecipePortMapEntry
{
public ContainerRecipePortMapEntry(int containerNumber, Port[] ports)
{
ContainerNumber = containerNumber;
Ports = ports;
2023-04-12 11:53:55 +00:00
}
2023-06-27 13:28:00 +00:00
public int ContainerNumber { get; }
public Port[] Ports { get; }
2023-04-12 11:53:55 +00:00
}
public class PodInfo
{
2023-06-27 13:28:00 +00:00
public PodInfo(string name, string ip, string k8sNodeName)
{
2023-06-27 13:28:00 +00:00
Name = name;
Ip = ip;
K8SNodeName = k8sNodeName;
}
public string Name { get; }
public string Ip { get; }
public string K8SNodeName { get; }
}
2023-04-12 11:53:55 +00:00
}