Tony,

sorry for the delay.
You cannot list all pods. So you need to list on a namespace:
List<IPod> pods = client.list(ResourceKind.*POD*, namespace);
for(Pod pod : pods) {
  pod.getLabels().get("*service_owner*") gives you the SERVICE_OWNER label
and so on for your specific labels

Please use the mailing list [email protected] to contact
OpenShift devs from now

Jeff

On Wed, Feb 27, 2019 at 4:31 AM Tony Herstell <[email protected]>
wrote:

>
> Hi Jeff,
>
>
>
> I am trying to use the openshift-rest-client and am stuck.
>
>
> Please advise where i should ask this question if you don't want to answer.
>
>
> No one is on freenode...
>
>
>
> The use case:
>
> I need to list all the pods, for the complete openshift service, and get
> back some label info as well as a lot of other info like time the pod was
> created…. Cpu... Mem... is burstable...
>
>
>
> *oc get pods --show-labels --loglevel=8
> --label-columns=service_owner,cost_centre,project_code*
>
> *               This in the logs does this:*
>
> *
> GET 
> https://cloud.nz.thenational.com:8443/api/v1/namespaces/mylend-extract-app/pods?limit=500
> <https://cloud.nz.thenational.com:8443/api/v1/namespaces/mylend-extract-app/pods?limit=500>*
>
> *               NAME                          READY     STATUS
> RESTARTS   AGE       SERVICE_OWNER         COST_CENTRE   PROJECT_CODE
> LABELS*
>
> *    dev-xxxxx-23-tl426               1/1       Running     0
> 49m               xxxx-Bob_SMith                   12345
>    PR11111
>         
> cost_centre=xxxxx,deployment=dev-xxxx-extract-23,deploymentconfig=dev-xxxx-extract,project_code=123456,promoted-on=2019-02-20T15.43.03Z,sdlc_phase=dev,security_context=Protect,service_class=gold,service_owner=xxxx-Bob_Smith*
>
>
>
> But how is this possible with openshift-rest-client?
>
>
>
> This Rest Call gives me what I want… but the return is JSON.
>
> https://cloud.xx.xxxxxxx.com:8443/api/v1/pods?limit=3000
>
>
>
> {
>
>     "kind": "PodList",
>
>     "apiVersion": "v1",
>
>     "metadata": {
>
>         "selfLink": "/api/v1/pods",
>
>         "resourceVersion": "229294082"
>
>     },
>
>     "items": [
>
>         {
>
>             "metadata": {
>
>                 "name": "httpd-ex-2-pxphv",
>
>                 "generateName": "httpd-ex-2-",
>
>                 "namespace": "1-leng",
>
>                 "selfLink":
> "/api/v1/namespaces/1-leng/pods/httpd-ex-2-pxphv",
>
>                 "uid": "7882e0b2-2041-11e9-a2d1-001a4a408f4f",
>
>                 "resourceVersion": "200150030",
>
>                 "creationTimestamp": "2019-01-25T01:35:17Z",
>
>                 "labels": {
>
>                     "app": "httpd-ex",
>
>                     "deployment": "httpd-ex-2",
>
>                     "deploymentconfig": "httpd-ex"
>
>                 },
>
> …
>
>
>
> This, being JSON, in itself is a pain as I can’t find the “model” anywhere
> to create the java beans from (so can use JAXRS/B to map the data to it)…
>
> The best I can do, here, is take an example and slap it into
> http://www.jsonschema2pojo.org/ and then hack it… but this will not have
> all the “model” unless I am lucky enough to have an example that has all
> the parts…
>
>
>
> I would rather use the openshift-client-api as:
>
>    - Obviously it’s the preferred method
>    - Its more future proofed as we can update the openshift rest client
>    for simplicity… as it will map to the newer version
>    - Its going to be “simple”
>
>
>
>
>
>
>
> *      public* *void* getPods() {
>
>              IClient client = *new* ClientBuilder("
> https://cloud-dev.xx.xxx.com:8443";)
>
>
> .withUserName(propertiesService.getApplicationProperty("openshift_user"))
>
>
> .withPassword(propertiesService.getApplicationProperty("openshift_password"))
>
>                            .build();
>
>              logger <http://logger.info/>.info 
> <http://logger.info/>("==============
> Openshift Connection Established ==============");
>
>              logger <http://logger.info/>.info 
> <http://logger.info/>("Openshift
> Verion :" + client.getOpenShiftAPIVersion());
>
>              logger <http://logger.info/>.info 
> <http://logger.info/>("Openshift
> Server Ready Status :" + client.getServerReadyStatus());
>
>
>
> // List the pods in the all *namespaces*
>
>              List<IPod> pods = client.list(ResourceKind.*POD*);  // ?? All
> *Namespaces* (perhaps I need to get ALL projects and then look at pods in
> them?)
>
>
>
>                     // What I want to do with a POD
>
>                     IPod aPod = pods.get(1);
>
>                     String *name* = aPod.getName();
>
>                     String *creationTime* = aPod.getCreationTimeStamp(); //
> This is the *timestamp* when the pod started
>
>                     Map<String, String> *labels* = aPod.getLabels(); //
> These are the labels for the Pod .. find the ones we want
>
>                     aPod.getNamespace().getRequester(); // Use this if the
> person responsible has not set a label
>
>                     // aPod.get?? I want: Requested Number of CPUs,
> Requested MEM and if the pod is *burstable*.
>
>        }
>
>
>
> I tried to get the projects but stumbled there too…
>
>
>
> I could not find much documentation.
>
>
>
> I downloaded the source and looked in there but there was not much to go
> on.
>
>
>
> I looked at the test case in the source but there was not much to go on.
>
>
>
> I am fairly new to Openshift (used a lot but now am peeking into the guts).
>
>
>
> Please can you advise how I go about this…
>
>
> Tony Herstell (on mobile)
>


-- 

JEFF MAURY

Red Hat

<https://www.redhat.com/>

[email protected]
<https://red.ht/sig>
<https://redhat.com/summit>
@redhatjobs <https://twitter.com/redhatjobs>   redhatjobs
<https://www.facebook.com/redhatjobs/>   @redhatjobs
<https://instagram.com/redhatjobs>
_______________________________________________
dev mailing list
[email protected]
http://lists.openshift.redhat.com/openshiftmm/listinfo/dev

Reply via email to