public class io.fabric.kubernetes.examples.CronJobExample extends java.lang.Object
{
private static final org.slf4j.Logger logger;
public void <init>()
{
io.fabric.kubernetes.examples.CronJobExample v;
v := @this: io.fabric.kubernetes.examples.CronJobExample;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static void main(java.lang.String[])
{
io.fabric.kubernetes.api.model.batch.CronJobFluent$SpecNested v;
java.util.Map v;
io.fabric.kubernetes.api.model.PodTemplateSpecFluent$SpecNested v;
io.fabric.kubernetes.client.DefaultKubernetesClient v;
io.fabric.kubernetes.api.model.batch.CronJobSpecFluent v;
io.fabric.kubernetes.api.model.batch.JobSpecFluent$TemplateNested v;
io.fabric.kubernetes.client.Config v;
java.util.concurrent.CountDownLatch v;
io.fabric.kubernetes.api.model.ObjectMetaFluent v, v;
io.fabric.kubernetes.api.model.ObjectMeta v;
io.fabric.kubernetes.api.model.batch.JobTemplateSpecFluent$SpecNested v;
java.lang.Throwable v, v, v, v;
io.fabric.kubernetes.client.dsl.MixedOperation v, v;
io.fabric.kubernetes.client.dsl.BatchAPIGroupDSL v;
io.fabric.kubernetes.api.model.batch.CronJobSpecFluent$JobTemplateNested v;
io.fabric.kubernetes.api.model.ContainerFluent v, v, v;
io.fabric.kubernetes.client.ConfigFluent v;
io.fabric.kubernetes.api.model.batch.CronJobFluent v;
io.fabric.kubernetes.api.model.batch.CronJob v;
io.fabric.kubernetes.client.Watch v;
java.lang.String[] v, v;
io.fabric.kubernetes.examples.CronJobExample$1 v;
int v;
io.fabric.kubernetes.api.model.PodSpecFluent v;
java.lang.String v, v, v, v;
io.fabric.kubernetes.api.model.batch.CronJobBuilder v;
io.fabric.kubernetes.api.model.PodSpecFluent$ContainersNested v;
java.util.concurrent.TimeUnit v;
io.fabric.kubernetes.api.model.batch.CronJobFluent$MetadataNested v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v;
io.fabric.kubernetes.client.ConfigBuilder v;
v := @parameter: java.lang.String[];
v = "https://localhost:8443/";
v = lengthof v;
if v != 1 goto label;
v = v[0];
label:
staticinvoke <io.fabric.kubernetes.examples.CronJobExample: void log(java.lang.String,java.lang.Object)>("Using master with url ", v);
v = new io.fabric.kubernetes.client.ConfigBuilder;
specialinvoke v.<io.fabric.kubernetes.client.ConfigBuilder: void <init>()>();
v = virtualinvoke v.<io.fabric.kubernetes.client.ConfigBuilder: io.fabric.kubernetes.client.ConfigFluent withMasterUrl(java.lang.String)>(v);
v = virtualinvoke v.<io.fabric.kubernetes.client.ConfigBuilder: io.fabric.kubernetes.client.Config build()>();
label:
v = new io.fabric.kubernetes.client.DefaultKubernetesClient;
specialinvoke v.<io.fabric.kubernetes.client.DefaultKubernetesClient: void <init>(io.fabric.kubernetes.client.Config)>(v);
label:
v = interfaceinvoke v.<io.fabric.kubernetes.client.KubernetesClient: java.lang.String getNamespace()>();
v = new io.fabric.kubernetes.api.model.batch.CronJobBuilder;
specialinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobBuilder: void <init>()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobBuilder: io.fabric.kubernetes.api.model.batch.CronJobFluent withApiVersion(java.lang.String)>("batch/v1beta1");
v = virtualinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobBuilder: io.fabric.kubernetes.api.model.batch.CronJobFluent$MetadataNested withNewMetadata()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobFluent$MetadataNested: io.fabric.kubernetes.api.model.ObjectMetaFluent withName(java.lang.String)>("hello");
v = staticinvoke <java.util.Collections: java.util.Map singletonMap(java.lang.Object,java.lang.Object)>("foo", "bar");
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobFluent$MetadataNested: io.fabric.kubernetes.api.model.ObjectMetaFluent withLabels(java.util.Map)>(v);
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobFluent$MetadataNested: java.lang.Object endMetadata()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobBuilder: io.fabric.kubernetes.api.model.batch.CronJobFluent$SpecNested withNewSpec()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobFluent$SpecNested: io.fabric.kubernetes.api.model.batch.CronJobSpecFluent withSchedule(java.lang.String)>("*/1 * * * *");
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobFluent$SpecNested: io.fabric.kubernetes.api.model.batch.CronJobSpecFluent$JobTemplateNested withNewJobTemplate()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobSpecFluent$JobTemplateNested: io.fabric.kubernetes.api.model.batch.JobTemplateSpecFluent$SpecNested withNewSpec()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.JobTemplateSpecFluent$SpecNested: io.fabric.kubernetes.api.model.batch.JobSpecFluent$TemplateNested withNewTemplate()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.JobSpecFluent$TemplateNested: io.fabric.kubernetes.api.model.PodTemplateSpecFluent$SpecNested withNewSpec()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.PodTemplateSpecFluent$SpecNested: io.fabric.kubernetes.api.model.PodSpecFluent$ContainersNested addNewContainer()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.PodSpecFluent$ContainersNested: io.fabric.kubernetes.api.model.ContainerFluent withName(java.lang.String)>("hello");
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.PodSpecFluent$ContainersNested: io.fabric.kubernetes.api.model.ContainerFluent withImage(java.lang.String)>("busybox");
v = newarray (java.lang.String)[3];
v[0] = "/bin/sh";
v[1] = "-c";
v[2] = "date; echo Hello from Kubernetes";
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.PodSpecFluent$ContainersNested: io.fabric.kubernetes.api.model.ContainerFluent withArgs(java.lang.String[])>(v);
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.PodSpecFluent$ContainersNested: java.lang.Object endContainer()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.PodTemplateSpecFluent$SpecNested: io.fabric.kubernetes.api.model.PodSpecFluent withRestartPolicy(java.lang.String)>("OnFailure");
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.PodTemplateSpecFluent$SpecNested: java.lang.Object endSpec()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.JobSpecFluent$TemplateNested: java.lang.Object endTemplate()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.JobTemplateSpecFluent$SpecNested: java.lang.Object endSpec()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobSpecFluent$JobTemplateNested: java.lang.Object endJobTemplate()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobFluent$SpecNested: java.lang.Object endSpec()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.batch.CronJobBuilder: io.fabric.kubernetes.api.model.batch.CronJob build()>();
staticinvoke <io.fabric.kubernetes.examples.CronJobExample: void log(java.lang.String)>("Creating cron job from object");
v = interfaceinvoke v.<io.fabric.kubernetes.client.KubernetesClient: io.fabric.kubernetes.client.dsl.BatchAPIGroupDSL batch()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.dsl.BatchAPIGroupDSL: io.fabric.kubernetes.client.dsl.MixedOperation cronjobs()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.dsl.MixedOperation: java.lang.Object inNamespace(java.lang.String)>(v);
v = interfaceinvoke v.<io.fabric.kubernetes.client.dsl.NonNamespaceOperation: java.lang.Object create(java.lang.Object)>(v);
v = virtualinvoke v.<io.fabric.kubernetes.api.model.batch.CronJob: io.fabric.kubernetes.api.model.ObjectMeta getMetadata()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.ObjectMeta: java.lang.String getName()>();
staticinvoke <io.fabric.kubernetes.examples.CronJobExample: void log(java.lang.String,java.lang.Object)>("Successfully created cronjob with name ", v);
staticinvoke <io.fabric.kubernetes.examples.CronJobExample: void log(java.lang.String)>("Watching over pod which would be created during cronjob execution...");
v = new java.util.concurrent.CountDownLatch;
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(1);
label:
v = interfaceinvoke v.<io.fabric.kubernetes.client.KubernetesClient: io.fabric.kubernetes.client.dsl.MixedOperation pods()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.dsl.MixedOperation: java.lang.Object inNamespace(java.lang.String)>(v);
v = interfaceinvoke v.<io.fabric.kubernetes.client.dsl.NonNamespaceOperation: java.lang.Object withLabel(java.lang.String)>("job-name");
v = new io.fabric.kubernetes.examples.CronJobExample$1;
specialinvoke v.<io.fabric.kubernetes.examples.CronJobExample$1: void <init>(io.fabric.kubernetes.client.KubernetesClient,java.lang.String,java.util.concurrent.CountDownLatch)>(v, v, v);
v = interfaceinvoke v.<io.fabric.kubernetes.client.dsl.FilterWatchListDeletable: io.fabric.kubernetes.client.Watch watch(java.lang.Object)>(v);
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MINUTES>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: boolean await(long,java.util.concurrent.TimeUnit)>(2L, v);
label:
if v == null goto label;
interfaceinvoke v.<io.fabric.kubernetes.client.Watch: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
staticinvoke <io.fabric.kubernetes.examples.CronJobExample: void log(java.lang.String,java.lang.Object)>("Could not watch pod", v);
label:
interfaceinvoke v.<io.fabric.kubernetes.client.KubernetesClient: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = virtualinvoke v.<io.fabric.kubernetes.client.KubernetesClientException: java.lang.String getMessage()>();
staticinvoke <io.fabric.kubernetes.examples.CronJobExample: void log(java.lang.String,java.lang.Object)>("An error occured while processing cronjobs:", v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch io.fabric.kubernetes.client.KubernetesClientException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch io.fabric.kubernetes.client.KubernetesClientException from label to label with label;
}
private static void log(java.lang.String, java.lang.Object)
{
java.lang.Object v;
java.lang.String v;
org.slf4j.Logger v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v = <io.fabric.kubernetes.examples.CronJobExample: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{}: {}", v, v);
return;
}
private static void log(java.lang.String)
{
java.lang.String v;
org.slf4j.Logger v;
v := @parameter: java.lang.String;
v = <io.fabric.kubernetes.examples.CronJobExample: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lio/fabric8/kubernetes/examples/CronJobExample;");
<io.fabric.kubernetes.examples.CronJobExample: org.slf4j.Logger logger> = v;
return;
}
}