http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/TriggerBuild.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/TriggerBuild.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/TriggerBuild.java new file mode 100644 index 0000000..abb0c89 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/TriggerBuild.java @@ -0,0 +1,45 @@ +/** + * Copyright 2005-2014 Red Hat, Inc. + * + * Red Hat licenses this file to you under the Apache License, version + * 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package io.fabric8.kubernetes.api; + +/** + * Triggers a build using the Java API + */ +public class TriggerBuild { + public static void main(String... args) { + if (args.length < 1) { + System.out.println("Usage: buildConfigName namespace secret type"); + return; + } + String name = args[0]; + String namespace = "default"; + if (args.length > 1) { + namespace = args[1]; + } + + KubernetesClient client = new KubernetesClient(); + + System.out.println("Connecting to kubernetes on: " + client.getAddress()); + + try { + String uuid = client.triggerBuildAndGetUuid(name, namespace); + System.out.println("Build triggered: got UUID: " + uuid); + } catch (Exception e) { + System.out.println("FAILED: " + e); + e.printStackTrace(); + } + } +}
http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/UsingBadAddressTest.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/UsingBadAddressTest.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/UsingBadAddressTest.java new file mode 100644 index 0000000..40b650e --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/UsingBadAddressTest.java @@ -0,0 +1,47 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.api; + +import io.fabric8.utils.Asserts; +import io.fabric8.utils.Block; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + */ +public class UsingBadAddressTest { + protected String badAddress = "cheese://does.notexist.redhat.com:666"; + + @Test + public void testUseBadAddressFails() throws Exception { + Asserts.assertException(new Block() { + @Override + public void invoke() throws Exception { + new KubernetesFactory(badAddress); + } + }); + } + + @Test + public void testUseBadAddressWithoutValidation() throws Exception { + KubernetesFactory factory = new KubernetesFactory(badAddress, false); + assertThat(factory).isNotNull(); + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewEndpoints.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewEndpoints.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewEndpoints.java new file mode 100644 index 0000000..445de7f --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewEndpoints.java @@ -0,0 +1,88 @@ +/** + * Copyright 2005-2014 Red Hat, Inc. + * + * Red Hat licenses this file to you under the Apache License, version + * 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package io.fabric8.kubernetes.api; + +import io.fabric8.kubernetes.api.model.*; + +import java.util.ArrayList; +import java.util.List; + +import static io.fabric8.utils.Lists.notNullList; + +/** + * Views the endpoints for all services or the given service id and namespace + */ +public class ViewEndpoints { + public static void main(String... args) { + System.out.println("Usage: [serviceId] [namespace]"); + KubernetesClient client = new KubernetesClient(); + + System.out.println("Connecting to kubernetes on: " + client.getAddress()); + + try { + String service = null; + String namespace = null; + if (args.length > 0) { + service = args[0]; + } + if (args.length > 1) { + namespace = args[1]; + } + listEndpoints(client, service, namespace); + } catch (Exception e) { + System.out.println("FAILED: " + e); + e.printStackTrace(); + } + } + + protected static void listEndpoints(KubernetesClient client, String service, String namespace) throws Exception { + if (service != null) { + Endpoints endpoints = client.endpointsForService(service, namespace); + display(endpoints); + + } else { + EndpointsList endpointsList = client.getEndpoints(); + if (endpointsList != null) { + List<Endpoints> items = notNullList(endpointsList.getItems()); + for (Endpoints item : items) { + display(item); + } + } + } + } + + protected static void display(Endpoints endpoints) { + if (endpoints != null) { + String name = endpoints.getMetadata().getName(); + String namespace = endpoints.getMetadata().getNamespace(); + List<String> urls = new ArrayList<>(); + List<EndpointSubset> endpointsSubsets = endpoints.getSubsets(); + + for (EndpointSubset endpointSubset : endpointsSubsets) { + for (EndpointAddress endpointAddress : endpointSubset.getAddresses()) { + for (EndpointPort endpointPort : endpointSubset.getPorts()) { + urls.add(endpointAddress.getIP() + ":" + endpointPort.getPort()); + } + } + } + + System.out.println("Service: " + name + " namespace: " + namespace + " urls: " + urls); + } else { + System.out.println("null endpoints"); + } + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewNodes.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewNodes.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewNodes.java new file mode 100644 index 0000000..da577ce --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewNodes.java @@ -0,0 +1,61 @@ +/** + * Copyright 2005-2014 Red Hat, Inc. + * + * Red Hat licenses this file to you under the Apache License, version + * 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package io.fabric8.kubernetes.api; + +import io.fabric8.kubernetes.api.model.Node; +import io.fabric8.kubernetes.api.model.NodeList; + +import java.util.List; + +import static io.fabric8.utils.Lists.notNullList; + +/** + * Views the minions + */ +public class ViewNodes { + public static void main(String... args) { + KubernetesClient client = new KubernetesClient(); + + System.out.println("Connecting to kubernetes on: " + client.getAddress()); + + try { + listMinions(client); + } catch (Exception e) { + System.out.println("FAILED: " + e); + e.printStackTrace(); + } + } + + protected static void listMinions(KubernetesClient client) throws Exception { + NodeList nodeList = client.getNodes(); + if (nodeList != null) { + List<Node> items = notNullList(nodeList.getItems()); + for (Node item : items) { + display(item); + } + } + } + + protected static void display(Node node) { + if (node != null) { + String id = node.getMetadata().getName(); + System.out.println("Node: " + id + " resources: " + node.getStatus().getCapacity()); + } else { + System.out.println("null node"); + } + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewServiceIPs.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewServiceIPs.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewServiceIPs.java new file mode 100644 index 0000000..0ea2bb6 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/ViewServiceIPs.java @@ -0,0 +1,45 @@ +/** + * Copyright 2005-2014 Red Hat, Inc. + * + * Red Hat licenses this file to you under the Apache License, version + * 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package io.fabric8.kubernetes.api; + +import java.util.Set; + +/** + * Views the endpoints for all services or the given service id and namespace + */ +public class ViewServiceIPs { + public static void main(String... args) { + System.out.println("Usage: [serviceName]"); + + try { + String service = null; + if (args.length > 0) { + service = args[0]; + } + + Set<String> addresses = KubernetesHelper.lookupServiceInDns(service); + if (addresses != null) { + System.out.println("addresses: " + addresses); + } else { + System.out.println("null addresses"); + } + } catch (Exception e) { + System.out.println("FAILED: " + e); + e.printStackTrace(); + } + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuilds.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuilds.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuilds.java new file mode 100644 index 0000000..40fd5de --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuilds.java @@ -0,0 +1,52 @@ +/** + * Copyright 2005-2014 Red Hat, Inc. + * + * Red Hat licenses this file to you under the Apache License, version + * 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package io.fabric8.kubernetes.api; + +import io.fabric8.kubernetes.api.builds.BuildFinishedEvent; +import io.fabric8.kubernetes.api.builds.BuildListener; +import io.fabric8.kubernetes.api.builds.BuildWatcher; +import io.fabric8.kubernetes.api.builds.Links; + +/** + * Triggers a build using the Java API + */ +public class WatchBuilds { + public static void main(String... args) { + String namespace = null; + if (args.length > 0) { + namespace = args[0]; + } + + String consoleLink = Links.getFabric8ConsoleLink(); + + KubernetesClient client = new KubernetesClient(); + BuildListener buildListener = new BuildListener() { + @Override + public void onBuildFinished(BuildFinishedEvent event) { + System.out.println("Build: " + event.getUid() + + " for config: " + event.getConfigName() + + " finished. Status: " + event.getStatus() + + " link: " + event.getBuildLink()); + } + }; + BuildWatcher watcher = new BuildWatcher(client, buildListener, namespace, consoleLink); + + long pollTime = 3000; + watcher.schedule(pollTime); + + watcher.join(); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuildsExample.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuildsExample.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuildsExample.java new file mode 100644 index 0000000..2105ba2 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchBuildsExample.java @@ -0,0 +1,23 @@ +package io.fabric8.kubernetes.api; + +import io.fabric8.openshift.api.model.Build; +import org.eclipse.jetty.websocket.client.WebSocketClient; + +public class WatchBuildsExample { + + public static void main(String... args) throws Exception { + KubernetesClient kube = new KubernetesClient(); + System.out.println("Connecting to kubernetes on: " + kube.getAddress()); + WebSocketClient client = kube.watchBuilds(new ExampleWatcher()); + Thread.sleep(10000l); + client.stop(); + } + + static class ExampleWatcher extends AbstractWatcher<Build> { + @Override + public void eventReceived(Action action, Build object) { + System.out.println(action + ": " + object); + } + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchPodsExample.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchPodsExample.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchPodsExample.java new file mode 100644 index 0000000..ded366d --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchPodsExample.java @@ -0,0 +1,23 @@ +package io.fabric8.kubernetes.api; + +import io.fabric8.kubernetes.api.model.Pod; +import org.eclipse.jetty.websocket.client.WebSocketClient; + +public class WatchPodsExample { + + public static void main(String... args) throws Exception { + KubernetesClient kube = new KubernetesClient(); + System.out.println("Connecting to kubernetes on: " + kube.getAddress()); + WebSocketClient client = kube.watchPods("default", null, new ExampleWatcher()); + Thread.sleep(10000l); + client.stop(); + } + + static class ExampleWatcher extends AbstractWatcher<Pod> { + @Override + public void eventReceived(Watcher.Action action, Pod object) { + System.out.println(action + ": " + object); + } + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchServicesExample.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchServicesExample.java b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchServicesExample.java new file mode 100644 index 0000000..13fb9a1 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/java/io/fabric8/kubernetes/api/WatchServicesExample.java @@ -0,0 +1,23 @@ +package io.fabric8.kubernetes.api; + +import io.fabric8.kubernetes.api.model.Service; +import org.eclipse.jetty.websocket.client.WebSocketClient; + +public class WatchServicesExample { + + public static void main(String... args) throws Exception { + KubernetesClient kube = new KubernetesClient(); + System.out.println("Connecting to kubernetes on: " + kube.getAddress()); + WebSocketClient client = kube.watchServices("jimmi", null, new ExampleWatcher()); + Thread.sleep(10000l); + client.stop(); + } + + static class ExampleWatcher extends AbstractWatcher<Service> { + @Override + public void eventReceived(Action action, Service object) { + System.out.println(action + ": " + object); + } + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/resources/config.yml ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/resources/config.yml b/dependencies/fabric8/kubernetes-api/src/test/resources/config.yml new file mode 100644 index 0000000..dd471d0 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/resources/config.yml @@ -0,0 +1,52 @@ +apiVersion: v1 +clusters: +- cluster: + insecure-skip-tls-verify: true + server: https://localhost:8443 + name: localhost-8443-0 +- cluster: + insecure-skip-tls-verify: true + server: https://localhost:8443 + name: localhost-8443-1 +- cluster: + insecure-skip-tls-verify: true + server: https://localhost:8443 + name: 172-28-128-4:8443 +- cluster: + insecure-skip-tls-verify: true + server: https://localhost:8443 + name: localhost:8443 +contexts: +- context: + cluster: localhost:8443 + namespace: claus + user: admin/localhost:8443 + name: claus/localhost:8443/admin +- context: + cluster: 172-28-128-4:8443 + namespace: jimmi-does-rock + user: admin/localhost:8443 + name: default/localhost:8443/admin +- context: + cluster: localhost:8443 + namespace: james + user: admin/localhost:8443 + name: james/localhost:8443/admin +- context: + cluster: localhost:8443 + namespace: roland + user: admin/localhost:8443 + name: roland/localhost:8443/admin +current-context: default/localhost:8443/admin +kind: Config +preferences: {} +users: +- name: admin/somewhere:8443 + user: + token: DEF +- name: admin/somewhere-else:8443 + user: + token: ABC +- name: admin/localhost:8443 + user: + token: ExpectedToken http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/resources/errorexample.json ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/resources/errorexample.json b/dependencies/fabric8/kubernetes-api/src/test/resources/errorexample.json new file mode 100644 index 0000000..3338c5d --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/resources/errorexample.json @@ -0,0 +1,77 @@ +{ + "id": "nova-compute-controller", + "apiVersion": "v1beta1", + "desiredState": { + "replicas": 6, + "podTemplate": { + "desiredState": { + "manifest": { + "id": "nova-compute-controller", + "containers": [ + { + "ports": [ + { + "hostPort": 12000, + "containerPort": 12000 + } + ], + "name": "nova-compute", + "image": "kollaglue/fedora-rdo-nova-compute", + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "NOVA_DB_PASSWORD", + "value": "novadbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + } + ], + "privileged": true + }, + { + "ports": [ + { + "hostPort": 12001, + "containerPort": 12001 + } + ], + "name": "nova-network", + "image": "kollaglue/fedora-rdo-nova-network", + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "NOVA_DB_PASSWORD", + "value": "novadbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + } + ], + "privileged": true + } + ], + "version": "v1beta1" + } + }, + "labels": { + "name": "nova-compute" + } + }, + "replicaSelector": { + "name": "nova-compute" + } + }, + "labels": { + "name": "nova-compute" + }, + "kind": "ReplicationController" +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/resources/fmq-service.json ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/resources/fmq-service.json b/dependencies/fabric8/kubernetes-api/src/test/resources/fmq-service.json new file mode 100644 index 0000000..4b704ba --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/resources/fmq-service.json @@ -0,0 +1,20 @@ +{ + "kind": "Service", + "apiVersion": "v1beta3", + "metadata": { + "name": "fabric8-mq-service" + }, + "spec": { + "ports": [ + { + "port": 6163, + "targetPort": 6162 + } + ], + "selector": { + "container": "java", + "name": "fabric8MQ", + "group": "fabric8MQ" + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/resources/glance-api-service.yaml ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/resources/glance-api-service.yaml b/dependencies/fabric8/kubernetes-api/src/test/resources/glance-api-service.yaml new file mode 100644 index 0000000..42e8c5c --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/resources/glance-api-service.yaml @@ -0,0 +1,7 @@ +apiVersion: v1beta1 +containerPort: 9292 +id: glance-api +kind: Service +port: 9292 +selector: + name: glance http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-api/src/test/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-api/src/test/resources/log4j.properties b/dependencies/fabric8/kubernetes-api/src/test/resources/log4j.properties new file mode 100644 index 0000000..50114a0 --- /dev/null +++ b/dependencies/fabric8/kubernetes-api/src/test/resources/log4j.properties @@ -0,0 +1,25 @@ +# +# Copyright 2005-2014 Red Hat, Inc. +# +# Red Hat licenses this file to you under the Apache License, version +# 2.0 (the "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. +# + +log4j.rootLogger=INFO, stdout + +#The logging properties used during tests.. +# CONSOLE appender not used by default +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%-5p %-30.30c{1} - %m%n +log4j.appender.stdout.threshold=DEBUG + http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/README.md ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/README.md b/dependencies/fabric8/kubernetes-model/README.md new file mode 100644 index 0000000..6019aa8 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/README.md @@ -0,0 +1,7 @@ +## Fabric8 Kubernetes Client API Model + +Fabric8 Kubernetes Client API Model 2.1.11 has been forked to fix issue [1]. The fix has been merged to master branch, +once the next Fabric8 release is published to Nexus this fork can be removed. + +[1] [origin-schema-generator/pull/50] (https://github.com/fabric8io/origin-schema-generator/pull/50) + http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/pom.xml ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/pom.xml b/dependencies/fabric8/kubernetes-model/pom.xml new file mode 100644 index 0000000..f8edfa5 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/pom.xml @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Copyright 2005-2014 Red Hat, Inc. + + Red Hat licenses this file to you under the Apache License, version + 2.0 (the "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. See the License for the specific language governing + permissions and limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.stratos</groupId> + <artifactId>stratos-dependencies-fabric8</artifactId> + <version>4.1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>kubernetes-model</artifactId> + <version>2.1.11-stratosv1</version> + <packaging>bundle</packaging> + + <name>Fabric8 :: Kubernetes Generated Model</name> + + <properties> + <clone-kube>true</clone-kube> + <kube.dir>${basedir}/src/main/resources</kube.dir> + </properties> + + <dependencies> + <dependency> + <groupId>io.sundr</groupId> + <artifactId>sundr-annotations</artifactId> + <version>0.0.16</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.module</groupId> + <artifactId>jackson-module-jaxb-annotations</artifactId> + <version>2.4.0</version> + </dependency> + <dependency> + <groupId>javax.validation</groupId> + <artifactId>validation-api</artifactId> + <version>1.1.0.Final</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.6</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.jsonschema2pojo</groupId> + <artifactId>jsonschema2pojo-maven-plugin</artifactId> + <version>0.4.10</version> + <configuration> + <sourceDirectory>${kube.dir}/schema</sourceDirectory> + <targetPackage>io.fabric8.kubernetes.api.model</targetPackage> + <includeConstructors>true</includeConstructors> + <includeJsr303Annotations>true</includeJsr303Annotations> + <outputDirectory>${basedir}/target/generated-sources</outputDirectory> + <customAnnotator>io.fabric8.kubernetes.annotator.KubernetesTypeAnnotator</customAnnotator> + </configuration> + <executions> + <execution> + <goals> + <goal>generate</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>io.fabric8.schemagenerator</groupId> + <artifactId>kubernetes-annotator</artifactId> + <version>0.0.45</version> + </dependency> + </dependencies> + </plugin> + <plugin> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.7</version> + <executions> + <execution> + <phase>generate-sources</phase> + <configuration> + <target> + <echo>removing the duplicate generated calss</echo> + <delete file="${basedir}/target/generated-sources/io/fabric8/kubernetes/api/model/util/IntOrString.java" verbose="true" /> + <delete file="${basedir}/target/generated-sources/io/fabric8/kubernetes/api/model/resource/Quantity.java" verbose="true" /> + <delete file="${basedir}/target/generated-sources/io/fabric8/openshift/api/model/template/Template.java" verbose="true" /> + <delete file="${basedir}/target/generated-sources/io/fabric8/kubernetes/api/model/HasMetadata.java" verbose="true" /> + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <extensions>true</extensions> + <version>2.3.7</version> + <configuration> + <instructions> + <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName> + <Export-Package> + io.fabric8.kubernetes.api.model + </Export-Package> + <Import-Package> + org.osgi.framework, + *;resolution:=optional + </Import-Package> + <DynamicImport-Package>*</DynamicImport-Package> + </instructions> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.9.1</version> + <executions> + <execution> + <id>attach-artifacts</id> + <phase>package</phase> + <goals> + <goal>attach-artifact</goal> + </goals> + <configuration> + <artifacts> + <artifact> + <file>${build.outputDirectory}/schema/kube-schema.json</file> + <type>json</type> + <classifier>schema</classifier> + </artifact> + </artifacts> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> + <version>2.5</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-gpg-plugin</artifactId> + <version>1.5</version> + <configuration> + <passphrase>${gpg.passphrase}</passphrase> + <useAgent>true</useAgent> + </configuration> + </plugin> + </plugins> + </build> +</project> http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesBaseConfig.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesBaseConfig.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesBaseConfig.java new file mode 100644 index 0000000..b3ad7e7 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesBaseConfig.java @@ -0,0 +1,14 @@ +package io.fabric8.config; + +import io.sundr.builder.annotations.ExternalBuildables; + +@ExternalBuildables(editableEnabled=false, validationEnabled = true, builderPackage = "io.fabric8.common", value = { + "io.fabric8.kubernetes.api.model.base.ListMeta", + "io.fabric8.kubernetes.api.model.base.ObjectMeta", + "io.fabric8.kubernetes.api.model.base.ObjectReference", + "io.fabric8.kubernetes.api.model.base.Status", + "io.fabric8.kubernetes.api.model.base.StatusCause", + "io.fabric8.kubernetes.api.model.base.StatusDetails" +}) +public class KubernetesBaseConfig { +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesConfig.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesConfig.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesConfig.java new file mode 100644 index 0000000..9422353 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/KubernetesConfig.java @@ -0,0 +1,81 @@ +package io.fabric8.config; + +import io.sundr.builder.annotations.ExternalBuildables; + +@ExternalBuildables(editableEnabled=false, validationEnabled = true, builderPackage = "io.fabric8.common", value = { + "io.fabric8.kubernetes.api.model.BaseKubernetesList", + "io.fabric8.kubernetes.api.model.KubernetesList", + + "io.fabric8.kubernetes.api.model.Capabilities", + "io.fabric8.kubernetes.api.model.Container", + "io.fabric8.kubernetes.api.model.ContainerPort", + "io.fabric8.kubernetes.api.model.ContainerState", + "io.fabric8.kubernetes.api.model.ContainerStateRunning", + "io.fabric8.kubernetes.api.model.ContainerStateTerminated", + "io.fabric8.kubernetes.api.model.ContainerStateWaiting", + "io.fabric8.kubernetes.api.model.ContainerStatus", + "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource", + "io.fabric8.kubernetes.api.model.EndpointAddress", + "io.fabric8.kubernetes.api.model.EndpointPort", + "io.fabric8.kubernetes.api.model.EndpointSubset", + "io.fabric8.kubernetes.api.model.Endpoints", + "io.fabric8.kubernetes.api.model.EndpointsList", + "io.fabric8.kubernetes.api.model.EnvVar", + "io.fabric8.kubernetes.api.model.EnvVarSource", + "io.fabric8.kubernetes.api.model.ExecAction", + "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource", + "io.fabric8.kubernetes.api.model.GitRepoVolumeSource", + "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource", + "io.fabric8.kubernetes.api.model.HTTPGetAction", + "io.fabric8.kubernetes.api.model.Handler", + "io.fabric8.kubernetes.api.model.HostPathVolumeSource", + "io.fabric8.kubernetes.api.model.ISCSIVolumeSource", + "io.fabric8.kubernetes.api.model.KubeSchema", + "io.fabric8.kubernetes.api.model.Lifecycle", + "io.fabric8.kubernetes.api.model.ListMeta", + "io.fabric8.kubernetes.api.model.NFSVolumeSource", + "io.fabric8.kubernetes.api.model.Namespace", + "io.fabric8.kubernetes.api.model.NamespaceList", + "io.fabric8.kubernetes.api.model.NamespaceSpec", + "io.fabric8.kubernetes.api.model.NamespaceStatus", + "io.fabric8.kubernetes.api.model.Node", + "io.fabric8.kubernetes.api.model.NodeAddress", + "io.fabric8.kubernetes.api.model.NodeCondition", + "io.fabric8.kubernetes.api.model.NodeList", + "io.fabric8.kubernetes.api.model.NodeSpec", + "io.fabric8.kubernetes.api.model.NodeStatus", + "io.fabric8.kubernetes.api.model.NodeSystemInfo", + "io.fabric8.kubernetes.api.model.ObjectFieldSelector", + "io.fabric8.kubernetes.api.model.ObjectMeta", + "io.fabric8.kubernetes.api.model.ObjectReference", + "io.fabric8.kubernetes.api.model.Pod", + "io.fabric8.kubernetes.api.model.PodCondition", + "io.fabric8.kubernetes.api.model.PodList", + "io.fabric8.kubernetes.api.model.PodSpec", + "io.fabric8.kubernetes.api.model.PodStatus", + "io.fabric8.kubernetes.api.model.PodTemplateSpec", + "io.fabric8.kubernetes.api.model.Probe", + "io.fabric8.kubernetes.api.model.ReplicationController", + "io.fabric8.kubernetes.api.model.ReplicationControllerList", + "io.fabric8.kubernetes.api.model.ReplicationControllerSpec", + "io.fabric8.kubernetes.api.model.ReplicationControllerStatus", + "io.fabric8.kubernetes.api.model.ResourceRequirements", + "io.fabric8.kubernetes.api.model.Secret", + "io.fabric8.kubernetes.api.model.SecretList", + "io.fabric8.kubernetes.api.model.SecretVolumeSource", + "io.fabric8.kubernetes.api.model.Service", + "io.fabric8.kubernetes.api.model.ServiceAccount", + "io.fabric8.kubernetes.api.model.ServiceAccountList", + "io.fabric8.kubernetes.api.model.ServiceList", + "io.fabric8.kubernetes.api.model.ServicePort", + "io.fabric8.kubernetes.api.model.ServiceSpec", + "io.fabric8.kubernetes.api.model.ServiceStatus", + "io.fabric8.kubernetes.api.model.TCPSocketAction", + "io.fabric8.kubernetes.api.model.Volume", + "io.fabric8.kubernetes.api.model.VolumeMount", + + "io.fabric8.kubernetes.api.model.util.IntOrString", + "io.fabric8.kubernetes.api.model.resource.Quantity" +}) +public class KubernetesConfig { +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/OpenshiftConfig.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/OpenshiftConfig.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/OpenshiftConfig.java new file mode 100644 index 0000000..8a48f81 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/config/OpenshiftConfig.java @@ -0,0 +1,67 @@ +package io.fabric8.config; + +import io.sundr.builder.annotations.ExternalBuildables; + +@ExternalBuildables(editableEnabled=false, validationEnabled = true, builderPackage = "io.fabric8.common", value = { + "io.fabric8.openshift.api.model.Build", + "io.fabric8.openshift.api.model.BuildConfig", + "io.fabric8.openshift.api.model.BuildConfigList", + "io.fabric8.openshift.api.model.BuildConfigSpec", + "io.fabric8.openshift.api.model.BuildConfigStatus", + "io.fabric8.openshift.api.model.BuildList", + "io.fabric8.openshift.api.model.BuildOutput", + "io.fabric8.openshift.api.model.BuildSource", + "io.fabric8.openshift.api.model.BuildSpec", + "io.fabric8.openshift.api.model.BuildStatus", + "io.fabric8.openshift.api.model.BuildStrategy", + "io.fabric8.openshift.api.model.BuildTriggerPolicy", + "io.fabric8.openshift.api.model.CustomBuildStrategy", + "io.fabric8.openshift.api.model.CustomDeploymentStrategyParams", + "io.fabric8.openshift.api.model.DeploymentCause", + "io.fabric8.openshift.api.model.DeploymentCauseImageTrigger", + "io.fabric8.openshift.api.model.DeploymentConfig", + "io.fabric8.openshift.api.model.DeploymentConfigList", + "io.fabric8.openshift.api.model.DeploymentConfigSpec", + "io.fabric8.openshift.api.model.DeploymentConfigStatus", + "io.fabric8.openshift.api.model.DeploymentDetails", + "io.fabric8.openshift.api.model.DeploymentStrategy", + "io.fabric8.openshift.api.model.DeploymentTriggerImageChangeParams", + "io.fabric8.openshift.api.model.DeploymentTriggerPolicy", + "io.fabric8.openshift.api.model.DockerBuildStrategy", + "io.fabric8.openshift.api.model.ExecNewPodHook", + "io.fabric8.openshift.api.model.GitBuildSource", + "io.fabric8.openshift.api.model.GitSourceRevision", + "io.fabric8.openshift.api.model.Image", + "io.fabric8.openshift.api.model.ImageChangeTrigger", + "io.fabric8.openshift.api.model.ImageList", + "io.fabric8.openshift.api.model.ImageStream", + "io.fabric8.openshift.api.model.ImageStreamList", + "io.fabric8.openshift.api.model.ImageStreamSpec", + "io.fabric8.openshift.api.model.ImageStreamStatus", + "io.fabric8.openshift.api.model.LifecycleHook", + "io.fabric8.openshift.api.model.NamedTagEventList", + "io.fabric8.openshift.api.model.NamedTagReference", + "io.fabric8.openshift.api.model.OAuthAccessToken", + "io.fabric8.openshift.api.model.OAuthAccessTokenList", + "io.fabric8.openshift.api.model.OAuthAuthorizeToken", + "io.fabric8.openshift.api.model.OAuthAuthorizeTokenList", + "io.fabric8.openshift.api.model.OAuthClient", + "io.fabric8.openshift.api.model.OAuthClientAuthorization", + "io.fabric8.openshift.api.model.OAuthClientAuthorizationList", + "io.fabric8.openshift.api.model.OAuthClientList", + "io.fabric8.openshift.api.model.RecreateDeploymentStrategyParams", + "io.fabric8.openshift.api.model.Route", + "io.fabric8.openshift.api.model.RouteList", + "io.fabric8.openshift.api.model.RouteSpec", + "io.fabric8.openshift.api.model.RouteStatus", + "io.fabric8.openshift.api.model.SourceBuildStrategy", + "io.fabric8.openshift.api.model.SourceControlUser", + "io.fabric8.openshift.api.model.SourceRevision", + "io.fabric8.openshift.api.model.TLSConfig", + "io.fabric8.openshift.api.model.TagEvent", + "io.fabric8.openshift.api.model.WebHookTrigger", + "io.fabric8.openshift.api.model.template.Template", + "io.fabric8.openshift.api.model.template.Parameter" +}) +public class OpenshiftConfig { +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/HasMetadata.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/HasMetadata.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/HasMetadata.java new file mode 100644 index 0000000..689791c --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/HasMetadata.java @@ -0,0 +1,7 @@ +package io.fabric8.kubernetes.api.model; + +public interface HasMetadata extends KubernetesResource { + + ObjectMeta getMetadata(); + void setMetadata(ObjectMeta metadata); +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesKind.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesKind.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesKind.java new file mode 100644 index 0000000..bc051bf --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesKind.java @@ -0,0 +1,71 @@ +package io.fabric8.kubernetes.api.model; + +import java.util.HashMap; +import java.util.Map; + +public enum KubernetesKind { + + List(KubernetesList.class), + ServiceAccount(ServiceAccount.class), + ServiceAccountList(ServiceAccountList.class), + Service(Service.class), + ServiceList(ServiceList.class), + Pod(Pod.class), + PodList(PodList.class), + ReplicationController(ReplicationController.class), + ReplicationControllerList(ReplicationControllerList.class), + Namespace(Namespace.class), + NamespaceList(NamespaceList.class), + Secret(Secret.class), + SecretList(SecretList.class), + Endpoints(Endpoints.class), + EndpointsList(EndpointsList.class), + Node(Node.class), + NodeList(NodeList.class), + Build(io.fabric8.openshift.api.model.Build.class), + BuildList(io.fabric8.openshift.api.model.BuildList.class), + BuildConfig(io.fabric8.openshift.api.model.BuildConfig.class), + BuildConfigList(io.fabric8.openshift.api.model.BuildConfigList.class), + DeploymentConfig(io.fabric8.openshift.api.model.DeploymentConfig.class), + DeploymentConfigList(io.fabric8.openshift.api.model.DeploymentConfigList.class), + Image(io.fabric8.openshift.api.model.Image.class), + ImageList(io.fabric8.openshift.api.model.ImageList.class), + ImageStream(io.fabric8.openshift.api.model.ImageStream.class), + ImageStreamList(io.fabric8.openshift.api.model.ImageStreamList.class), + NameTagReference(io.fabric8.openshift.api.model.NamedTagReference.class), + NameTagEventList(io.fabric8.openshift.api.model.NamedTagEventList.class), + Route(io.fabric8.openshift.api.model.Route.class), + RouteList(io.fabric8.openshift.api.model.RouteList.class), + Template(io.fabric8.openshift.api.model.template.Template.class), + TemplateList(io.fabric8.openshift.api.model.template.TemplateList.class), + OAuthClient(io.fabric8.openshift.api.model.OAuthClient.class), + OAuthClientList(io.fabric8.openshift.api.model.OAuthClientList.class), + OAuthClientAuthorization(io.fabric8.openshift.api.model.OAuthClientAuthorization.class), + OAuthClientAuthorizationList(io.fabric8.openshift.api.model.OAuthClientAuthorizationList.class), + OAuthAuthorizeToken(io.fabric8.openshift.api.model.OAuthAuthorizeToken.class), + OAuthAuthorizeTokenList(io.fabric8.openshift.api.model.OAuthAuthorizeTokenList.class), + OAuthAccessToken(io.fabric8.openshift.api.model.OAuthAccessToken.class), + OAuthAccessTokenList(io.fabric8.openshift.api.model.OAuthAccessTokenList.class); + + private static final Map<String, Class<? extends KubernetesResource>> map = new HashMap<String, Class<? extends KubernetesResource>>(); + + static { + for (KubernetesKind kind : KubernetesKind.values()) { + map.put(kind.name(), kind.type); + } + } + + private final Class<? extends KubernetesResource> type; + + KubernetesKind(Class type) { + this.type = type; + } + + public Class getType() { + return type; + } + + public static Class<? extends KubernetesResource> getTypeForName(String name) { + return map.get(name); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesList.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesList.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesList.java new file mode 100644 index 0000000..3450a46 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesList.java @@ -0,0 +1,49 @@ +package io.fabric8.kubernetes.api.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; + +import javax.annotation.Generated; +import java.util.List; + + +/** + * + * + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "annotations", + "apiVersion", + "creationTimestamp", + "deletionTimestamp", + "generateName", + "id", + "items", + "kind", + "namespace", + "resourceVersion", + "selfLink", + "uid" +}) +@JsonDeserialize(using = JsonDeserializer.None.class) +public class KubernetesList extends BaseKubernetesList implements KubernetesResource { + + /** + * No args constructor for use in serialization + */ + public KubernetesList() { + super(); + } + + public KubernetesList(KubernetesList.ApiVersion apiVersion, + List<HasMetadata> items, + String kind, + ListMeta metadata) { + super(apiVersion, items, kind, metadata); + this.setItems(items); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesResource.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesResource.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesResource.java new file mode 100644 index 0000000..bc2ba3d --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/KubernetesResource.java @@ -0,0 +1,8 @@ +package io.fabric8.kubernetes.api.model; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.fabric8.kubernetes.internal.KubernetesDeserializer; + +@JsonDeserialize(using = KubernetesDeserializer.class) +public interface KubernetesResource { +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/resource/Quantity.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/resource/Quantity.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/resource/Quantity.java new file mode 100644 index 0000000..b614487 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/resource/Quantity.java @@ -0,0 +1,135 @@ + +package io.fabric8.kubernetes.api.model.resource; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.*; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; + +import javax.annotation.Generated; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; + + +/** + * + * + */ +@JsonDeserialize(using = Quantity.Deserializer.class) +@JsonSerialize(using = Quantity.Serializer.class) +@Generated("org.jsonschema2pojo") +public class Quantity { + + private String amount; + private String format; + private Map<String, Object> additionalProperties = new HashMap<String, Object>(); + + /** + * No args constructor for use in serialization + * + */ + public Quantity() { + } + + /** + * + * @param Format + * @param Amount + */ + public Quantity(String amount) { + this.amount = amount; + } + + /** + * + * @param Format + * @param Amount + */ + public Quantity(String amount, String format) { + this.amount = amount; + this.format = format; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + @JsonAnyGetter + public Map<String, Object> getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + + @Override + public int hashCode() { + return new HashCodeBuilder().append(amount).append(format).append(additionalProperties).toHashCode(); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + if ((other instanceof Quantity) == false) { + return false; + } + Quantity rhs = ((Quantity) other); + return new EqualsBuilder().append(amount, rhs.amount).append(format, rhs.format).append(additionalProperties, rhs.additionalProperties).isEquals(); + } + + public static class Serializer extends JsonSerializer<Quantity> { + + @Override + public void serialize(Quantity value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { + if (value != null && value.getAmount() != null) { + jgen.writeNumber(value.getAmount()); + } else { + jgen.writeNull(); + } + } + } + + public static class Deserializer extends JsonDeserializer<Quantity> { + + @Override + public Quantity deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException, JsonProcessingException { + ObjectCodec oc = jsonParser.getCodec(); + JsonNode node = oc.readTree(jsonParser); + Quantity quantity = new Quantity(node.asText()); + return quantity; + } + + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/util/IntOrString.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/util/IntOrString.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/util/IntOrString.java new file mode 100644 index 0000000..bbf9828 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/api/model/util/IntOrString.java @@ -0,0 +1,195 @@ + +package io.fabric8.kubernetes.api.model.util; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; + +import javax.annotation.Generated; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonDeserialize(using = IntOrString.Deserializer.class) +@JsonSerialize(using = IntOrString.Serializer.class) +@JsonPropertyOrder({ + "IntVal", + "Kind", + "StrVal" +}) +public class IntOrString { + + @JsonProperty("IntVal") + private Integer IntVal; + @JsonProperty("Kind") + private Integer Kind; + @JsonProperty("StrVal") + private String StrVal; + @JsonIgnore + private Map<String, Object> additionalProperties = new HashMap<String, Object>(); + + public IntOrString() { + } + + //Builders are generated for the first non-empty constructor found. + public IntOrString(Integer intVal, Integer kind, String strVal, Map<String, Object> additionalProperties) { + IntVal = intVal; + Kind = kind; + StrVal = strVal; + this.additionalProperties = additionalProperties; + } + + public IntOrString(Integer intVal) { + this(intVal, 0, null, new HashMap<String, Object>()); + } + + public IntOrString(String strVal) { + this(null, 1, strVal, new HashMap<String, Object>()); + } + + + /** + * + * @return + * The IntVal + */ + @JsonProperty("IntVal") + public Integer getIntVal() { + return IntVal; + } + + /** + * + * @param IntVal + * The IntVal + */ + @JsonProperty("IntVal") + public void setIntVal(Integer IntVal) { + this.IntVal = IntVal; + } + + /** + * + * @return + * The Kind + */ + @JsonProperty("Kind") + public Integer getKind() { + return Kind; + } + + /** + * + * @param Kind + * The Kind + */ + @JsonProperty("Kind") + public void setKind(Integer Kind) { + this.Kind = Kind; + } + + /** + * + * @return + * The StrVal + */ + @JsonProperty("StrVal") + public String getStrVal() { + return StrVal; + } + + /** + * + * @param StrVal + * The StrVal + */ + @JsonProperty("StrVal") + public void setStrVal(String StrVal) { + this.StrVal = StrVal; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + @Override + public int hashCode() { + return HashCodeBuilder.reflectionHashCode(this); + } + + @Override + public boolean equals(Object other) { + return EqualsBuilder.reflectionEquals(this, other); + } + + @JsonAnyGetter + public Map<String, Object> getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + + public static class Serializer extends JsonSerializer<IntOrString> { + + @Override + public void serialize(IntOrString value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { + if (value != null) { + Integer intValue = value.getIntVal(); + if (intValue != null) { + jgen.writeNumber(intValue); + } else { + String stringValue = value.getStrVal(); + if (stringValue != null) { + jgen.writeString(stringValue); + } else { + jgen.writeNull(); + } + } + } else { + jgen.writeNull(); + } + } + + } + + public static class Deserializer extends JsonDeserializer<IntOrString> { + + @Override + public IntOrString deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException, JsonProcessingException { + ObjectCodec oc = jsonParser.getCodec(); + JsonNode node = oc.readTree(jsonParser); + IntOrString intOrString = new IntOrString(); + int asInt = node.asInt(); + if (asInt != 0) { + intOrString.setIntVal(asInt); + } else { + intOrString.setStrVal(node.asText()); + } + return intOrString; + } + + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataComparator.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataComparator.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataComparator.java new file mode 100644 index 0000000..84469f5 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataComparator.java @@ -0,0 +1,30 @@ +package io.fabric8.kubernetes.internal; + +import io.fabric8.kubernetes.api.model.HasMetadata; +import io.fabric8.kubernetes.api.model.Service; + +import java.util.Comparator; + +public class HasMetadataComparator implements Comparator<HasMetadata> { + @Override + public int compare(HasMetadata a, HasMetadata b) { + if (a == null || b == null) { + throw new NullPointerException("Cannot compare null HasMetadata objects"); + } + if (a == b) { + return 0; + } + + if (a instanceof Service && !(b instanceof Service)) { + return -1; + } + if (b instanceof Service && !(a instanceof Service)) { + return 1; + } + int classCompare = a.getClass().getSimpleName().compareTo(b.getClass().getSimpleName()); + if (classCompare != 0) { + return classCompare; + } + return a.getMetadata().getName().compareTo(b.getMetadata().getName()); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataSet.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataSet.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataSet.java new file mode 100644 index 0000000..a6795c3 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/HasMetadataSet.java @@ -0,0 +1,25 @@ +package io.fabric8.kubernetes.internal; + +import io.fabric8.kubernetes.api.model.HasMetadata; + +import java.util.Collection; +import java.util.SortedSet; +import java.util.TreeSet; + +public class HasMetadataSet extends TreeSet<HasMetadata> { + + public HasMetadataSet() { + super(new HasMetadataComparator()); + } + + public HasMetadataSet(Collection<? extends HasMetadata> c) { + super(new HasMetadataComparator()); + addAll(c); + } + + public HasMetadataSet(SortedSet<HasMetadata> s) { + super(new HasMetadataComparator()); + addAll(s); + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java new file mode 100644 index 0000000..bac84ee --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java @@ -0,0 +1,33 @@ +package io.fabric8.kubernetes.internal; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import io.fabric8.kubernetes.api.model.KubernetesKind; +import io.fabric8.kubernetes.api.model.KubernetesResource; + +import java.io.IOException; + +public class KubernetesDeserializer extends JsonDeserializer<KubernetesResource> { + + private static final String KIND = "kind"; + + @Override + public KubernetesResource deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { + ObjectNode node = jp.readValueAsTree(); + JsonNode kind = node.get(KIND); + if (kind != null) { + String value = kind.textValue(); + Class<? extends KubernetesResource> resourceType = KubernetesKind.getTypeForName(value); + if (resourceType == null) { + throw ctxt.mappingException("No resource type found for kind:" + value); + } else { + return jp.getCodec().treeToValue(node, resourceType); + } + } + return null; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/openshift/api/model/template/Template.java ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/openshift/api/model/template/Template.java b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/openshift/api/model/template/Template.java new file mode 100644 index 0000000..08163ee --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/java/io/fabric8/openshift/api/model/template/Template.java @@ -0,0 +1,306 @@ + +package io.fabric8.openshift.api.model.template; + +import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.fabric8.kubernetes.api.model.*; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; + +import javax.annotation.Generated; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import java.util.*; + + +/** + * + * + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "apiVersion", + "kind", + "labels", + "metadata", + "objects", + "parameters" +}) +@JsonDeserialize(using = JsonDeserializer.None.class) +public class Template implements HasMetadata { + + /** + * + * (Required) + * + */ + @JsonProperty("apiVersion") + @NotNull + private Template.ApiVersion apiVersion = Template.ApiVersion.fromValue("v1beta3"); + /** + * + * (Required) + * + */ + @JsonProperty("kind") + @NotNull + private java.lang.String kind = "Template"; + /** + * + * + */ + @JsonProperty("labels") + @Valid + private Map<String, String> labels; + /** + * + * + */ + @JsonProperty("metadata") + @Valid + private ObjectMeta metadata; + /** + * + * + */ + @JsonProperty("objects") + @Valid + private List<HasMetadata> objects = new ArrayList<HasMetadata>(); + /** + * + * + */ + @JsonProperty("parameters") + @Valid + private List<Parameter> parameters = new ArrayList<Parameter>(); + @JsonIgnore + private Map<java.lang.String, java.lang.Object> additionalProperties = new HashMap<java.lang.String, java.lang.Object>(); + + + /** + * No args constructor for use in serialization + * + */ + public Template() { + } + + /** + * + * @param apiVersion + * @param labels + * @param parameters + * @param objects + * @param kind + * @param metadata + */ + public Template(Template.ApiVersion apiVersion, java.lang.String kind, Map<String, String> labels, ObjectMeta metadata, List<HasMetadata> objects, List<Parameter> parameters) { + this.apiVersion = apiVersion; + this.kind = kind; + this.labels = labels; + this.metadata = metadata; + this.objects = objects; + this.parameters = parameters; + + this.setObjects(objects); + } + + /** + * + * (Required) + * + * @return + * The apiVersion + */ + @JsonProperty("apiVersion") + public Template.ApiVersion getApiVersion() { + return apiVersion; + } + + /** + * + * (Required) + * + * @param apiVersion + * The apiVersion + */ + @JsonProperty("apiVersion") + public void setApiVersion(Template.ApiVersion apiVersion) { + this.apiVersion = apiVersion; + } + + /** + * + * (Required) + * + * @return + * The kind + */ + @JsonProperty("kind") + public java.lang.String getKind() { + return kind; + } + + /** + * + * (Required) + * + * @param kind + * The kind + */ + @JsonProperty("kind") + public void setKind(java.lang.String kind) { + this.kind = kind; + } + + /** + * + * + * @return + * The labels + */ + @JsonProperty("labels") + public Map<String, String> getLabels() { + return labels; + } + + /** + * + * + * @param labels + * The labels + */ + @JsonProperty("labels") + public void setLabels(Map<String, String> labels) { + this.labels = labels; + } + + /** + * + * + * @return + * The metadata + */ + @JsonProperty("metadata") + public ObjectMeta getMetadata() { + return metadata; + } + + /** + * + * + * @param metadata + * The metadata + */ + @JsonProperty("metadata") + public void setMetadata(ObjectMeta metadata) { + this.metadata = metadata; + } + + /** + * + * + * @return + * The objects + */ + @JsonProperty("objects") + public List<HasMetadata> getObjects() { + return objects; + } + + public void setObjects(List<HasMetadata> objects) { + this.objects = objects; + } + + /** + * + * + * @return + * The parameters + */ + @JsonProperty("parameters") + public List<Parameter> getParameters() { + return parameters; + } + + /** + * + * + * @param parameters + * The parameters + */ + @JsonProperty("parameters") + public void setParameters(List<Parameter> parameters) { + this.parameters = parameters; + } + + @Override + public java.lang.String toString() { + return ToStringBuilder.reflectionToString(this); + } + + @JsonAnyGetter + public Map<java.lang.String, java.lang.Object> getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(java.lang.String name, java.lang.Object value) { + this.additionalProperties.put(name, value); + } + + @Override + public int hashCode() { + return new HashCodeBuilder().append(apiVersion).append(kind).append(labels).append(metadata).append(objects).append(parameters).append(additionalProperties).toHashCode(); + } + + @Override + public boolean equals(java.lang.Object other) { + if (other == this) { + return true; + } + if ((other instanceof Template) == false) { + return false; + } + Template rhs = ((Template) other); + return new EqualsBuilder().append(apiVersion, rhs.apiVersion).append(kind, rhs.kind).append(labels, rhs.labels).append(metadata, rhs.metadata).append(objects, rhs.objects).append(parameters, rhs.parameters).append(additionalProperties, rhs.additionalProperties).isEquals(); + } + + @Generated("org.jsonschema2pojo") + public static enum ApiVersion { + + V_1_BETA_3("v1beta3"), + V_1("v1"); + private final java.lang.String value; + private static Map<java.lang.String, Template.ApiVersion> constants = new HashMap<java.lang.String, Template.ApiVersion>(); + + static { + for (Template.ApiVersion c: values()) { + constants.put(c.value, c); + } + } + + private ApiVersion(java.lang.String value) { + this.value = value; + } + + @JsonValue + @Override + public java.lang.String toString() { + return this.value; + } + + @JsonCreator + public static Template.ApiVersion fromValue(java.lang.String value) { + Template.ApiVersion constant = constants.get(value); + if (constant == null) { + throw new IllegalArgumentException(value); + } else { + return constant; + } + } + + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/3414e7ce/dependencies/fabric8/kubernetes-model/src/main/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/dependencies/fabric8/kubernetes-model/src/main/resources/log4j.properties b/dependencies/fabric8/kubernetes-model/src/main/resources/log4j.properties new file mode 100644 index 0000000..393e087 --- /dev/null +++ b/dependencies/fabric8/kubernetes-model/src/main/resources/log4j.properties @@ -0,0 +1,8 @@ +# Root logger option +log4j.rootLogger=INFO, stdout + +# Direct log messages to stdout +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n \ No newline at end of file
