internal ReplicaSetInfo(ReplicaSet obj) { _object = obj; }
private async Task ResolveOwnerReferenceAsync(HttpClient httpClient, PodInfo podInfo, OwnerReference ownerReference) { JsonReader reader; IMetaV1Object?obj = default; switch (ownerReference.Kind) { case "StatefulSet" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/statefulsets/{ownerReference.Name}"); var statefulSet = new StatefulSet(ref reader); obj = statefulSet; podInfo.StatefulSet = new StatefulSetInfo(statefulSet); break; case "DaemonSet" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/daemonsets/{ownerReference.Name}"); var daemonSet = new DaemonSet(ref reader); obj = daemonSet; podInfo.DaemonSet = new DaemonSetInfo(daemonSet); break; case "ReplicaSet" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/replicasets/{ownerReference.Name}"); var replicaSet = new ReplicaSet(ref reader); obj = replicaSet; podInfo.ReplicaSet = new ReplicaSetInfo(replicaSet); break; case "Deployment" when ownerReference.ApiVersion == "apps/v1": reader = await GetJsonAsync(httpClient, $"/apis/apps/v1/namespaces/{podInfo.Namespace}/deployments/{ownerReference.Name}"); var deployment = new Deployment(ref reader); obj = deployment; podInfo.Deployment = new DeploymentInfo(deployment); break; case "Job" when ownerReference.ApiVersion == "batch/v1": reader = await GetJsonAsync(httpClient, $"/apis/batch/v1/namespaces/{podInfo.Namespace}/jobs/{ownerReference.Name}"); var job = new Job(ref reader); obj = job; podInfo.Job = new JobInfo(job); break; case "CronJob" when ownerReference.ApiVersion == "batch/v1beta1": reader = await GetJsonAsync(httpClient, $"/apis/{ownerReference.ApiVersion}/namespaces/{podInfo.Namespace}/cronjobs/{ownerReference.Name}"); var cronJob = new CronJob(ref reader); obj = cronJob; podInfo.CronJob = new CronJobInfo(cronJob); break; } if (obj != null) { await ResolveOwnerReferencesAsync(httpClient, podInfo, obj.Metadata.OwnerReferences); } }