jenkinsci / openstack-cloud-plugin

Provision nodes from OpenStack on demand
https://plugins.jenkins.io/openstack-cloud
MIT License
47 stars 83 forks source link

Plugin doesn't respect glance API version #77

Closed vills closed 6 years ago

vills commented 8 years ago

Current Glance API version is 2. So in service catalog we have endpoint to image-service in format "HOST/v2". When plugin trying to get list of available images, it send request "GET /v2/images/detail". However, in v2 API there is no target "/images/detail", and so list of images not loaded.

Please, fix plugin to force use v1 API. Or implement v2 support.

Jenkins 1.651 Plugin 2.6

Thanks.

olivergondza commented 8 years ago

I will have to look at this in more detail but I would say this needs to be escalated to openstack4j guys.

vills commented 8 years ago

Thanks for reply. Looks like someone already addressed issue to openstack4j team: https://github.com/ContainX/openstack4j/issues/647 Anyway, openstack4j doesn't support glance v2 api, as it is not mentioned here: http://www.openstack4j.com/learn

So, maybe you can override URL obtained from identity service to point v1 endpoint, until openstack4j implement v2 support? Most installations support v1 api version, as far as i know.

vills commented 8 years ago

Please, look at issue i mentioned above: https://github.com/ContainX/openstack4j/issues/647 Looks like o4j forced use of v1 image api. But plugin uses /v2 gathered from endpoint URL.

olivergondza commented 6 years ago

According to the openstack4j devs the support should be there. The plugin reports endpoints when clicking the "Test Connection" on config page. Please report what glance versions are reported so we can answer their question.

Mine reports image/glance:1 so I can not reproduce this.

CC @shayharush, @JGroselle

JGroselle commented 6 years ago

Hi @olivergondza I have added a specific jenkins logger for this plugin according to the documentation but cannot have logs. Anyway, here is the API access log when I click on "Test connection":

"GET /v2.0/networks/ HTTP/1.1" 404 52 "-" "OpenStack4j / OpenStack Client" "GET /v1/images//members HTTP/1.1" 300 642 "-" "OpenStack4j / OpenStack Client" "GET /v2.1/006ce30396044fe09cdf049fa3936860/extensions HTTP/1.1" 200 22700 "-" "OpenStack4j / OpenStack Client"

So the plugin try to reach glance V1. Here is the status of my glance API:

HTTPMultipleChoices (HTTP 300) Requested version of OpenStack Images API is not available.

Thank you for your help

olivergondza commented 6 years ago

@JGroselle, thanks though that does not quite answer our question. OS token should have a list of service endpoints and that is what the "Test connection" reports on the config page. Please attach the output it give you.

At this point openstack4j can either be misinformed (for whatever reason) what the image endpoint is/are or it does not respect the endpoint location when invoking requests and this will help us to narrow that down.

balous commented 6 years ago

Hi @olivergondza, may be I could provide some information, but when I click 'Test connection', no details are output either to the log or to the web UI. Should I enable some debugging somewhere?

olivergondza commented 6 years ago

@balous, that should be presented right below the button...

I have rechecked the openstack4j API and in fact clients need to explicitly refer to dedicated API based on the glance version the OS instance supports. Which is the thing not yet implemented in the plugin...

balous commented 6 years ago

@olivergondza, when I click the 'Test Connection' button, I see just 'Testing...' replaced by 'Connection succeeed!'. Nothing else changes on the page.

Anyway, do you still need it?

olivergondza commented 6 years ago

@balous, no, after what we have found out. Btw, your version seems outdated - that's why you can see it.

JGroselle commented 6 years ago

Hi @olivergondza do you have an ETA about

I have rechecked the openstack4j API and in fact clients need to explicitly refer to dedicated API based on the glance version the OS instance supports. Which is the thing not yet implemented in the plugin...

Jenkins version = 2.107.1 Plugin version = 2.32

heyleke commented 6 years ago

I have following behaviour: (caputred with tcpdump)

request:

GET /v1/images//members HTTP/1.1 User-Agent: OpenStack4j / OpenStack Client ... Accept-Encoding: gzip

response:

HTTP/1.1 300 Multiple Choices Content-Type: application/json Content-Length: 792 Date: Thu, 02 Aug 2018 15:58:17 GMT

{"versions": [{"status": "CURRENT", "id": "v2.5", "links": [{"href": "http://ch-dc-os-dhn-73.eecloud.nsn-net.net:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.4", "links": [{"href": "http://ch-dc-os-dhn-73.eecloud.nsn-net.net:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.3", "links": [{"href": "http://ch-dc-os-dhn-73.eecloud.nsn-net.net:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.2", "links": [{"href": "http://ch-dc-os-dhn-73.eecloud.nsn-net.net:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.1", "links": [{"href": "http://ch-dc-os-dhn-73.eecloud.nsn-net.net:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.0", "links": [{"href": "http://ch-dc-os-dhn-73.eecloud.nsn-net.net:9292/v2/", "rel": "self"}]}]}

and the result is that the image list is empty, is this related to the same issue, and is there a possible workaround in Jenkins config?

heyleke commented 6 years ago

by the way, the same test as @JGroselle shows:

(v)[root@rataplan ch-dc-os-dhn-73]# glance --os-image-api-version 1 image-list HTTPMultipleChoices (HTTP 300) Requested version of OpenStack Images API is not available. (v)[root@rataplan ch-dc-os-dhn-73]# glance --os-image-api-version 2 image-list +--------------------------------------+--------------------------------------------------+ | ID | Name | +--------------------------------------+--------------------------------------------------+ | 72d8af32-e017-46fe-a1fd-bf572fb8d385 |...

olivergondza commented 6 years ago

@heyleke, there is no workaround for now.

olivergondza commented 6 years ago

I have started to experiment with this and have not got any further than @maggosourabh (https://github.com/jenkinsci/openstack-cloud-plugin/issues/211#issuecomment-405112963), latest openstack4j version does not seem to correctly deserialzie the version 2 output. This is fixed in openstack4j upstream but the library is stale for a while now: https://github.com/ContainX/openstack4j/issues/1207.

In the mean time, can you guys please explore your setup with following jenkins groovy script and report the results here:

def c = Jenkins.instance.clouds[0].openstack.@clientProvider.get()
println "V1: " + c.images().listAll().size()
println "V2: " + c.imagesV2().list().size()

Since we know we cannot rely of glance version reported by keystone, I would like to see some real samples of the endpoint behaviour. I am mostly interested if some of these throws an exception, report empty list of images or if there is a case that some of the endpoints returns a different set than the other.

balous commented 6 years ago

@olivergondza

V1: 0 V2: 25

Is it needed to have some specific version of the OS plugin?

olivergondza commented 6 years ago

@balous, the numbers you have provided and perfectly valid and useful. Thanks! Apparently, there are glance 2 subversions openstack4j can parse...

maggosourabh commented 6 years ago

Hello @olivergondza

In my case i executed the same, but didn't received any input for v2 glance.

Script executed: def c = Jenkins.instance.clouds[0].openstack.@clientProvider.get() println "V1 images: " + c.images().listAll().size() println "\n" println "V2 images: " + c.imagesV2().list().size()

Output: - Same as provided in #211

V1 images: 0

com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
 at [Source: {"images": [{"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:21:31Z", "min_disk": 20, "file": "/v2/images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9", "size": 2361393152, "self": "/v2/images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9/snap", "metadata": {}}], "date": "20180825-0620", "virtual_size": null, "build_by": "CI", "package_cksum": "c51b3e243e2302c2bba625ae6af18b11ccc7ee49", "name": "B_Ubuntu_18.04_Server", "checksum": "f3376dc1c824b8e154259a636e87f4e7", "created_at": "2018-08-25T06:20:58Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:21:43Z", "min_disk": 20, "file": "/v2/images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "d3d3868d-3ca5-4ad4-9d22-5e8137e7f467", "size": 5368709120, "self": "/v2/images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467/snap", "metadata": {}}], "date": "20180825-0620", "virtual_size": null, "build_by": "CI", "package_cksum": "14d14b67403f3fd5a63b7776be419e7341061822", "name": "B_SUSE_12_SP2_Server", "checksum": "fdf5f256cc23fcfb7fb9a5d6136a165b", "created_at": "2018-08-25T06:20:35Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:18:01Z", "min_disk": 20, "file": "/v2/images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "b11b6e55-e6f3-4af1-be1e-c8e7662e2f35", "size": 5368709120, "self": "/v2/images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35/snap", "metadata": {}}], "date": "20180825-0616", "virtual_size": null, "build_by": "CI", "package_cksum": "be5aec4edface18ec261aaa577f3757661a0bdd4", "name": "SUSE_12_SP3_Server", "checksum": "ebb473d6dd14af86c556af8ed792a94d", "created_at": "2018-08-25T06:16:22Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:07:57Z", "min_disk": 20, "file": "/v2/images/611c8b53-b683-4c09-ae1c-352766544058/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "611c8b53-b683-4c09-ae1c-352766544058", "size": 8589934592, "self": "/v2/images/611c8b53-b683-4c09-ae1c-352766544058", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/611c8b53-b683-4c09-ae1c-352766544058/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/611c8b53-b683-4c09-ae1c-352766544058/snap", "metadata": {}}], "date": "20180825-0605", "virtual_size": null, "build_by": "CI", "package_cksum": "9d73048233f450c31fe078692bc05d8ea5b72542", "name": "CentOS_7_Server", "checksum": "7e11907f924076865ec8a8fd09d0b2b3", "created_at": "2018-08-25T06:05:11Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:04:08Z", "min_disk": 20, "file": "/v2/images/ca484873-9adb-4b88-86c5-2e747aa10f95/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "ca484873-9adb-4b88-86c5-2e747aa10f95", "size": 2361393152, "self": "/v2/images/ca484873-9adb-4b88-86c5-2e747aa10f95", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ca484873-9adb-4b88-86c5-2e747aa10f95/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ca484873-9adb-4b88-86c5-2e747aa10f95/snap", "metadata": {}}], "date": "20180825-0603", "virtual_size": null, "build_by": "CI", "package_cksum": "c67f1de065c5a97e19f2bd776cac6976e8005812", "name": "Ubuntu_16.04_Server", "checksum": "b0a480ce0d861964edae895b6f45d816", "created_at": "2018-08-25T06:03:20Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:00:12Z", "min_disk": 20, "file": "/v2/images/cdc4ca73-2063-4afa-8fad-679581082faf/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "cdc4ca73-2063-4afa-8fad-679581082faf", "size": 5368709120, "self": "/v2/images/cdc4ca73-2063-4afa-8fad-679581082faf", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/cdc4ca73-2063-4afa-8fad-679581082faf/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/cdc4ca73-2063-4afa-8fad-679581082faf/snap", "metadata": {}}], "date": "20180825-0559", "virtual_size": null, "build_by": "CI", "package_cksum": "80784384aa0e096f85c529d4493ef7ee12d5bffb", "name": "SUSE_11_SP4_Server", "checksum": "2b82d6e678a8c9a32c04cc51406ccc79", "created_at": "2018-08-25T05:59:04Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T05:51:04Z", "min_disk": 20, "file": "/v2/images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "deb1ba4e-94cf-4f4a-be25-cffaf3f89511", "size": 2361393152, "self": "/v2/images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511/snap", "metadata": {}}], "date": "20180825-0550", "virtual_size": null, "build_by": "CI", "package_cksum": "2cc65707ff7a5a9ec2cb337defb8fd923bc7485c", "name": "Ubuntu_14.04_Server", "checksum": "a783cea96bf1ee2e6dff9b8a896d5139", "created_at": "2018-08-25T05:50:17Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"image_state": "available", "container_format": "bare", "min_ram": 0, "updated_at": "2018-08-06T08:16:54Z", "date": "20180710-0401", "file": "/v2/images/3498767c-8145-44aa-bd42-c53afabab386/file", "owner": "383b088b839d4ab0a08750efbcae0d95", "id": "3498767c-8145-44aa-bd42-c53afabab386", "size": 42949672960, "user_id": "308cfe1e739f4ae3b7db1b53415bb407", "image_type": "snapshot", "self": "/v2/images/3498767c-8145-44aa-bd42-c53afabab386", "disk_format": "raw", "base_image_ref": "e8eeb7a1-9546-41ba-813b-3cfeb928eb80", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/3498767c-8145-44aa-bd42-c53afabab386/snap", "owner_id": "383b088b839d4ab0a08750efbcae0d95", "status": "active", "image_location": "snapshot", "tags": [], "visibility": "private", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/3498767c-8145-44aa-bd42-c53afabab386/snap", "metadata": {}}], "min_disk": 40, "virtual_size": null, "build_by": "CI", "package_cksum": "6e7361aed08a1221b5784a053a76fc1dc32fb12f", "instance_uuid": "750c7ea2-2183-4432-bf9d-61d863dfe89b", "name": "fscTEST", "checksum": "03931eb4f7dd396128ae093ac74a8ff5", "created_at": "2018-08-06T07:49:55Z", "protected": false, "commit": "e51e3e2d248d59da73408b7fe5c94471b3e0f0a9", "schema": "/v2/schemas/image"}, {"container_format": "bare", "min_ram": 2048, "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6/snap", "metadata": {}}], "file": "/v2/images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6/file", "owner": "383b088b839d4ab0a08750efbcae0d95", "id": "1ccaaa86-0fa8-41e3-83da-dd39e71213e6", "size": 3020619776, "self": "/v2/images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6", "disk_format": "iso", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6/snap", "schema": "/v2/schemas/image", "status": "active", "description": "kali", "tags": [], "visibility": "private", "updated_at": "2018-04-27T07:37:52Z", "min_disk": 100, "virtual_size": null, "name": "kali", "checksum": "541654f8f818450dc0db866a0a0f6eec", "created_at": "2018-04-27T07:37:09Z", "protected": false, "architecture": "amd64"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-03-26T16:35:34Z", "min_disk": 80, "file": "/v2/images/39ca1917-e93d-40db-84a3-69709f99a38f/file", "owner": "383b088b839d4ab0a08750efbcae0d95", "id": "39ca1917-e93d-40db-84a3-69709f99a38f", "size": 0, "self": "/v2/images/39ca1917-e93d-40db-84a3-69709f99a38f", "tags": [], "disk_format": "qcow2", "base_image_ref": "", "bdm_v2": "True", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/39ca1917-e93d-40db-84a3-69709f99a38f/snap", "schema": "/v2/schemas/image", "status": "active", "block_device_mapping": "[{\"guest_format\": null, \"boot_index\": 0, \"delete_on_termination\": false, \"no_device\": null, \"snapshot_id\": \"6fcf462b-c4fa-43df-a159-c4564612bc98\", \"device_name\": \"/dev/vda\", \"disk_bus\": \"virtio\", \"image_id\": null, \"source_type\": \"snapshot\", \"tag\": null, \"device_type\": \"disk\", \"volume_id\": null, \"destination_type\": \"volume\", \"volume_size\": 69}]", "visibility": "private", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/39ca1917-e93d-40db-84a3-69709f99a38f/snap", "metadata": {}}], "date": "20171208", "imageversion": "5.0.1.2_Openstack_0517c", "virtual_size": null, "build_by": "FG-840", "name": "ProcessIint1", "checksum": "d41d8cd98f00b204e9800998ecf8427e", "created_at": "2018-03-26T16:35:33Z", "protected": false, "root_device_name": "/dev/vda"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-01-18T12:55:31Z", "min_disk": 60, "file": "/v2/images/c8c4bc45-7759-402f-ac4f-4b7d167668d1/file", "owner": "1fe3a6219a4e47838ccfa1b7ee583c02", "id": "c8c4bc45-7759-402f-ac4f-4b7d167668d1", "size": 68157440000, "self": "/v2/images/c8c4bc45-7759-402f-ac4f-4b7d167668d1", "disk_format": "raw", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/c8c4bc45-7759-402f-ac4f-4b7d167668d1/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/c8c4bc45-7759-402f-ac4f-4b7d167668d1/snap", "metadata": {}}], "date": "20171208", "imageversion": "5.0.1.2_Openstack_0517c", "virtual_size": null, "build_by": "FG-840", "name": "Windows Server 2012 R2", "checksum": "cfb3ebb3134370c7336a6a45f4c31e60", "created_at": "2017-12-08T12:22:06Z", "protected": false}, {"status": "active", "virtual_size": null, "name": "teststst", "tags": [], "container_format": "bare", "created_at": "2017-11-21T14:10:51Z", "size": 1525678080, "disk_format": "qcow2", "updated_at": "2017-11-21T14:10:51Z", "visibility": "public", "locations": [{"url": "http://smt-lab.bgroup.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "metadata": {}}], "self": "/v2/images/fbc36e18-627f-405c-bd11-1660449a963d", "min_disk": 0, "protected": false, "id": "fbc36e18-627f-405c-bd11-1660449a963d", "file": "/v2/images/fbc36e18-627f-405c-bd11-1660449a963d/file", "checksum": null, "owner": "61afb832f97c415fabf1b3a5f7ef8a16", "direct_url": "http://smt-lab.group.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "test", "tags": [], "container_format": "bare", "created_at": "2017-11-21T13:57:30Z", "size": 1525678080, "disk_format": "qcow2", "updated_at": "2017-11-21T13:57:30Z", "visibility": "public", "locations": [{"url": "http://smt-lab.group.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "metadata": {}}], "self": "/v2/images/b09fda7e-ae3e-4ae7-a65b-5c857750183c", "min_disk": 0, "protected": false, "id": "b09fda7e-ae3e-4ae7-a65b-5c857750183c", "file": "/v2/images/b09fda7e-ae3e-4ae7-a65b-5c857750183c/file", "checksum": null, "owner": "61afb832f97c415fabf1b3a5f7ef8a16", "direct_url": "http://smt-lab.group.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "cirros", "tags": [], "container_format": "bare", "created_at": "2017-10-13T09:48:37Z", "size": 8589934592, "disk_format": "qcow2", "updated_at": "2017-10-13T09:50:12Z", "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c/snap", "metadata": {}}], "self": "/v2/images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c", "min_disk": 0, "protected": false, "id": "a2d001ec-4a79-4f9c-a6b0-d160ded08f9c", "file": "/v2/images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c/file", "checksum": "b770351fadae5a96bbaf9702ed97d28d", "owner": "be5d60b302564e0d9b439c69b7b31e27", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c/snap", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "cirros", "tags": [], "container_format": "bare", "created_at": "2017-10-13T09:47:15Z", "size": 13267968, "disk_format": "qcow2", "updated_at": "2017-10-13T09:47:17Z", "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ea808f33-670e-4833-bde4-85975a14e257/snap", "metadata": {}}], "self": "/v2/images/ea808f33-670e-4833-bde4-85975a14e257", "min_disk": 0, "protected": false, "id": "ea808f33-670e-4833-bde4-85975a14e257", "file": "/v2/images/ea808f33-670e-4833-bde4-85975a14e257/file", "checksum": "f8ab98ff5e73ebab884d80c9dc9c7290", "owner": "be5d60b302564e0d9b439c69b7b31e27", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ea808f33-670e-4833-bde4-85975a14e257/snap", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "cirros", "tags": [], "container_format": "bare", "created_at": "2017-10-11T06:18:05Z", "size": 13267968, "disk_format": "raw", "updated_at": "2017-10-11T06:18:08Z", "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e/snap", "metadata": {}}], "self": "/v2/images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e", "min_disk": 0, "protected": false, "id": "b42db75d-5b67-434d-9ae3-f9b94aa8cb5e", "file": "/v2/images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e/file", "checksum": "f8ab98ff5e73ebab884d80c9dc9c7290", "owner": "1a88cff43b45444792b3da1983536ea9", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e/snap", "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"}; line: 1, column: 615] (through reference chain: org.openstack4j.openstack.image.v2.domain.Images["images"]->java.util.ArrayList[0]->org.openstack4j.openstack.image.v2.domain.GlanceImage["locations"]->java.util.ArrayList[0])
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:216)
    at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:873)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseString(StdDeserializer.java:845)
    at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:206)
    at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:177)
    at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:20)
    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490)
    at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:277)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:249)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490)
    at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125)
    at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1575)
    at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1200)
    at org.openstack4j.connectors.okhttp.HttpResponseImpl.readEntity(HttpResponseImpl.java:122)
Caused: ClientResponseException{message=Can not deserialize instance of java.lang.String out of START_OBJECT token
 at [Source: {"images": [{"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:21:31Z", "min_disk": 20, "file": "/v2/images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9", "size": 2361393152, "self": "/v2/images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a83f6ab9-5df2-4d05-b0cd-cd85782d9cb9/snap", "metadata": {}}], "date": "20180825-0620", "virtual_size": null, "build_by": "CI", "package_cksum": "c51b3e243e2302c2bba625ae6af18b11ccc7ee49", "name": "Ubuntu_18.04_Server", "checksum": "f3376dc1c824b8e154259a636e87f4e7", "created_at": "2018-08-25T06:20:58Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:21:43Z", "min_disk": 20, "file": "/v2/images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "d3d3868d-3ca5-4ad4-9d22-5e8137e7f467", "size": 5368709120, "self": "/v2/images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/d3d3868d-3ca5-4ad4-9d22-5e8137e7f467/snap", "metadata": {}}], "date": "20180825-0620", "virtual_size": null, "build_by": "CI", "package_cksum": "14d14b67403f3fd5a63b7776be419e7341061822", "name": "SUSE_12_SP2_Server", "checksum": "fdf5f256cc23fcfb7fb9a5d6136a165b", "created_at": "2018-08-25T06:20:35Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:18:01Z", "min_disk": 20, "file": "/v2/images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "b11b6e55-e6f3-4af1-be1e-c8e7662e2f35", "size": 5368709120, "self": "/v2/images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b11b6e55-e6f3-4af1-be1e-c8e7662e2f35/snap", "metadata": {}}], "date": "20180825-0616", "virtual_size": null, "build_by": "CI", "package_cksum": "be5aec4edface18ec261aaa577f3757661a0bdd4", "name": "SUSE_12_SP3_Server", "checksum": "ebb473d6dd14af86c556af8ed792a94d", "created_at": "2018-08-25T06:16:22Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:07:57Z", "min_disk": 20, "file": "/v2/images/611c8b53-b683-4c09-ae1c-352766544058/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "611c8b53-b683-4c09-ae1c-352766544058", "size": 8589934592, "self": "/v2/images/611c8b53-b683-4c09-ae1c-352766544058", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/611c8b53-b683-4c09-ae1c-352766544058/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/611c8b53-b683-4c09-ae1c-352766544058/snap", "metadata": {}}], "date": "20180825-0605", "virtual_size": null, "build_by": "CI", "package_cksum": "9d73048233f450c31fe078692bc05d8ea5b72542", "name": "CentOS_7_Server", "checksum": "7e11907f924076865ec8a8fd09d0b2b3", "created_at": "2018-08-25T06:05:11Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:04:08Z", "min_disk": 20, "file": "/v2/images/ca484873-9adb-4b88-86c5-2e747aa10f95/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "ca484873-9adb-4b88-86c5-2e747aa10f95", "size": 2361393152, "self": "/v2/images/ca484873-9adb-4b88-86c5-2e747aa10f95", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ca484873-9adb-4b88-86c5-2e747aa10f95/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ca484873-9adb-4b88-86c5-2e747aa10f95/snap", "metadata": {}}], "date": "20180825-0603", "virtual_size": null, "build_by": "CI", "package_cksum": "c67f1de065c5a97e19f2bd776cac6976e8005812", "name": "Ubuntu_16.04_Server", "checksum": "b0a480ce0d861964edae895b6f45d816", "created_at": "2018-08-25T06:03:20Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T06:00:12Z", "min_disk": 20, "file": "/v2/images/cdc4ca73-2063-4afa-8fad-679581082faf/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "cdc4ca73-2063-4afa-8fad-679581082faf", "size": 5368709120, "self": "/v2/images/cdc4ca73-2063-4afa-8fad-679581082faf", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/cdc4ca73-2063-4afa-8fad-679581082faf/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/cdc4ca73-2063-4afa-8fad-679581082faf/snap", "metadata": {}}], "date": "20180825-0559", "virtual_size": null, "build_by": "CI", "package_cksum": "80784384aa0e096f85c529d4493ef7ee12d5bffb", "name": "SUSE_11_SP4_Server", "checksum": "2b82d6e678a8c9a32c04cc51406ccc79", "created_at": "2018-08-25T05:59:04Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-25T05:51:04Z", "min_disk": 20, "file": "/v2/images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511/file", "owner": "1a88cff43b45444792b3da1983536ea9", "id": "deb1ba4e-94cf-4f4a-be25-cffaf3f89511", "size": 2361393152, "self": "/v2/images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511", "disk_format": "raw", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/deb1ba4e-94cf-4f4a-be25-cffaf3f89511/snap", "metadata": {}}], "date": "20180825-0550", "virtual_size": null, "build_by": "CI", "package_cksum": "2cc65707ff7a5a9ec2cb337defb8fd923bc7485c", "name": "Ubuntu_14.04_Server", "checksum": "a783cea96bf1ee2e6dff9b8a896d5139", "created_at": "2018-08-25T05:50:17Z", "protected": false, "commit": "e9d0ddb8197b5a357437dd608d7559ea9d4e33ea"}, {"image_state": "available", "container_format": "bare", "min_ram": 0, "updated_at": "2018-08-06T08:16:54Z", "date": "20180710-0401", "file": "/v2/images/3498767c-8145-44aa-bd42-c53afabab386/file", "owner": "383b088b839d4ab0a08750efbcae0d95", "id": "3498767c-8145-44aa-bd42-c53afabab386", "size": 42949672960, "user_id": "308cfe1e739f4ae3b7db1b53415bb407", "image_type": "snapshot", "self": "/v2/images/3498767c-8145-44aa-bd42-c53afabab386", "disk_format": "raw", "base_image_ref": "e8eeb7a1-9546-41ba-813b-3cfeb928eb80", "branch": "region-muc-2", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/3498767c-8145-44aa-bd42-c53afabab386/snap", "owner_id": "383b088b839d4ab0a08750efbcae0d95", "status": "active", "image_location": "snapshot", "tags": [], "visibility": "private", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/3498767c-8145-44aa-bd42-c53afabab386/snap", "metadata": {}}], "min_disk": 40, "virtual_size": null, "build_by": "CI", "package_cksum": "6e7361aed08a1221b5784a053a76fc1dc32fb12f", "instance_uuid": "750c7ea2-2183-4432-bf9d-61d863dfe89b", "name": "fscTEST", "checksum": "03931eb4f7dd396128ae093ac74a8ff5", "created_at": "2018-08-06T07:49:55Z", "protected": false, "commit": "e51e3e2d248d59da73408b7fe5c94471b3e0f0a9", "schema": "/v2/schemas/image"}, {"container_format": "bare", "min_ram": 2048, "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6/snap", "metadata": {}}], "file": "/v2/images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6/file", "owner": "383b088b839d4ab0a08750efbcae0d95", "id": "1ccaaa86-0fa8-41e3-83da-dd39e71213e6", "size": 3020619776, "self": "/v2/images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6", "disk_format": "iso", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/1ccaaa86-0fa8-41e3-83da-dd39e71213e6/snap", "schema": "/v2/schemas/image", "status": "active", "description": "kali", "tags": [], "visibility": "private", "updated_at": "2018-04-27T07:37:52Z", "min_disk": 100, "virtual_size": null, "name": "kali", "checksum": "541654f8f818450dc0db866a0a0f6eec", "created_at": "2018-04-27T07:37:09Z", "protected": false, "architecture": "amd64"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-03-26T16:35:34Z", "min_disk": 80, "file": "/v2/images/39ca1917-e93d-40db-84a3-69709f99a38f/file", "owner": "383b088b839d4ab0a08750efbcae0d95", "id": "39ca1917-e93d-40db-84a3-69709f99a38f", "size": 0, "self": "/v2/images/39ca1917-e93d-40db-84a3-69709f99a38f", "tags": [], "disk_format": "qcow2", "base_image_ref": "", "bdm_v2": "True", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/39ca1917-e93d-40db-84a3-69709f99a38f/snap", "schema": "/v2/schemas/image", "status": "active", "block_device_mapping": "[{\"guest_format\": null, \"boot_index\": 0, \"delete_on_termination\": false, \"no_device\": null, \"snapshot_id\": \"6fcf462b-c4fa-43df-a159-c4564612bc98\", \"device_name\": \"/dev/vda\", \"disk_bus\": \"virtio\", \"image_id\": null, \"source_type\": \"snapshot\", \"tag\": null, \"device_type\": \"disk\", \"volume_id\": null, \"destination_type\": \"volume\", \"volume_size\": 69}]", "visibility": "private", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/39ca1917-e93d-40db-84a3-69709f99a38f/snap", "metadata": {}}], "date": "20171208", "imageversion": "5.0.1.2_Openstack_0517c", "virtual_size": null, "build_by": "FG-840", "name": "ProcessIint1", "checksum": "d41d8cd98f00b204e9800998ecf8427e", "created_at": "2018-03-26T16:35:33Z", "protected": false, "root_device_name": "/dev/vda"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-01-18T12:55:31Z", "min_disk": 60, "file": "/v2/images/c8c4bc45-7759-402f-ac4f-4b7d167668d1/file", "owner": "1fe3a6219a4e47838ccfa1b7ee583c02", "id": "c8c4bc45-7759-402f-ac4f-4b7d167668d1", "size": 68157440000, "self": "/v2/images/c8c4bc45-7759-402f-ac4f-4b7d167668d1", "disk_format": "raw", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/c8c4bc45-7759-402f-ac4f-4b7d167668d1/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/c8c4bc45-7759-402f-ac4f-4b7d167668d1/snap", "metadata": {}}], "date": "20171208", "imageversion": "5.0.1.2_Openstack_0517c", "virtual_size": null, "build_by": "FG-840", "name": "Windows Server 2012 R2", "checksum": "cfb3ebb3134370c7336a6a45f4c31e60", "created_at": "2017-12-08T12:22:06Z", "protected": false}, {"status": "active", "virtual_size": null, "name": "teststst", "tags": [], "container_format": "bare", "created_at": "2017-11-21T14:10:51Z", "size": 1525678080, "disk_format": "qcow2", "updated_at": "2017-11-21T14:10:51Z", "visibility": "public", "locations": [{"url": "http://smt-lab.group.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "metadata": {}}], "self": "/v2/images/fbc36e18-627f-405c-bd11-1660449a963d", "min_disk": 0, "protected": false, "id": "fbc36e18-627f-405c-bd11-1660449a963d", "file": "/v2/images/fbc36e18-627f-405c-bd11-1660449a963d/file", "checksum": null, "owner": "61afb832f97c415fabf1b3a5f7ef8a16", "direct_url": "http://smt-lab.group.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "test", "tags": [], "container_format": "bare", "created_at": "2017-11-21T13:57:30Z", "size": 1525678080, "disk_format": "qcow2", "updated_at": "2017-11-21T13:57:30Z", "visibility": "public", "locations": [{"url": "http://smt-lab.group.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "metadata": {}}], "self": "/v2/images/b09fda7e-ae3e-4ae7-a65b-5c857750183c", "min_disk": 0, "protected": false, "id": "b09fda7e-ae3e-4ae7-a65b-5c857750183c", "file": "/v2/images/b09fda7e-ae3e-4ae7-a65b-5c857750183c/file", "checksum": null, "owner": "61afb832f97c415fabf1b3a5f7ef8a16", "direct_url": "http://smt-lab.group.net/repo/ISO/SUSE-CaaS-Platform-2.0-OpenStack-Cloud.x86_64-1.0.0-GM.qcow2", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "cirros", "tags": [], "container_format": "bare", "created_at": "2017-10-13T09:48:37Z", "size": 8589934592, "disk_format": "qcow2", "updated_at": "2017-10-13T09:50:12Z", "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c/snap", "metadata": {}}], "self": "/v2/images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c", "min_disk": 0, "protected": false, "id": "a2d001ec-4a79-4f9c-a6b0-d160ded08f9c", "file": "/v2/images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c/file", "checksum": "b770351fadae5a96bbaf9702ed97d28d", "owner": "be5d60b302564e0d9b439c69b7b31e27", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/a2d001ec-4a79-4f9c-a6b0-d160ded08f9c/snap", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "cirros", "tags": [], "container_format": "bare", "created_at": "2017-10-13T09:47:15Z", "size": 13267968, "disk_format": "qcow2", "updated_at": "2017-10-13T09:47:17Z", "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ea808f33-670e-4833-bde4-85975a14e257/snap", "metadata": {}}], "self": "/v2/images/ea808f33-670e-4833-bde4-85975a14e257", "min_disk": 0, "protected": false, "id": "ea808f33-670e-4833-bde4-85975a14e257", "file": "/v2/images/ea808f33-670e-4833-bde4-85975a14e257/file", "checksum": "f8ab98ff5e73ebab884d80c9dc9c7290", "owner": "be5d60b302564e0d9b439c69b7b31e27", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/ea808f33-670e-4833-bde4-85975a14e257/snap", "min_ram": 0, "schema": "/v2/schemas/image"}, {"status": "active", "virtual_size": null, "name": "cirros", "tags": [], "container_format": "bare", "created_at": "2017-10-11T06:18:05Z", "size": 13267968, "disk_format": "raw", "updated_at": "2017-10-11T06:18:08Z", "visibility": "public", "locations": [{"url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e/snap", "metadata": {}}], "self": "/v2/images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e", "min_disk": 0, "protected": false, "id": "b42db75d-5b67-434d-9ae3-f9b94aa8cb5e", "file": "/v2/images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e/file", "checksum": "f8ab98ff5e73ebab884d80c9dc9c7290", "owner": "1a88cff43b45444792b3da1983536ea9", "direct_url": "rbd://aed73f28-9c66-42b8-bb61-9ccb9ecb3c99/region-muc-2.images/b42db75d-5b67-434d-9ae3-f9b94aa8cb5e/snap", "min_ram": 0, "schema": "/v2/schemas/image"}], "schema": "/v2/schemas/images", "first": "/v2/images"}; line: 1, column: 615] (through reference chain: org.openstack4j.openstack.image.v2.domain.Images["images"]->java.util.ArrayList[0]->org.openstack4j.openstack.image.v2.domain.GlanceImage["locations"]->java.util.ArrayList[0]), status=0, status-code=CODE_UNKNOWN}
    at org.openstack4j.connectors.okhttp.HttpResponseImpl.readEntity(HttpResponseImpl.java:125)
    at org.openstack4j.core.transport.HttpEntityHandler.handle(HttpEntityHandler.java:66)
    at org.openstack4j.connectors.okhttp.HttpResponseImpl.getEntity(HttpResponseImpl.java:69)
    at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:225)
    at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:207)
    at org.openstack4j.openstack.image.v2.internal.ImageServiceImpl.list(ImageServiceImpl.java:45)
    at org.openstack4j.api.image.v2.ImageService$list.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
    at Script1.run(Script1.groovy:4)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:594)
    at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:142)
    at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:114)
    at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
    at hudson.util.RemotingDiagnostics.executeGroovy(RemotingDiagnostics.java:111)
    at jenkins.model.Jenkins._doScript(Jenkins.java:4357)
    at jenkins.model.Jenkins.doScript(Jenkins.java:4328)
    at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
    at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
    at com.cloudbees.jenkins.ha.HAHealthCheckFilter.doFilter(HAHealthCheckFilter.java:35)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1629)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
    at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter._doFilter(OfflineSecurityRealmFilter.java:95)
    at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter.doFilter(OfflineSecurityRealmFilter.java:70)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    at com.cloudbees.opscenter.security.ClusterSessionFilter._doFilter(ClusterSessionFilter.java:69)
    at com.cloudbees.opscenter.security.ClusterSessionFilter.doFilter(ClusterSessionFilter.java:44)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:138)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:50)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
keysher commented 6 years ago

Same issue here, we are unable to get image list in the Jenkins config.

In the Groovy console:

def c = Jenkins.instance.clouds[2].openstack.@clientProvider.get()
println "V1: " + c.images().listAll().size()
println "V2: " + c.imagesV2().list().size()
[(master)]:
V1: 0
V2: 3

Regards!!!

guilhermesteinmuller commented 6 years ago

Hello. Does anyone knows the status of v2 implementation? As mentioned some comments above, this should be implemented in o4j.

Newer users of openstack will be directly affected because v1 glance api is going to be excluded in openstack stable/rocky.

Any advice for the next steps to make it work?

guilhermesteinmuller commented 6 years ago

And this is my output against an openstack stable/rocky deployment

V1: 0

com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
 at [Source: {"images": [{"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-27T17:37:02Z", "file": "/v2/images/02faa4dc-7e73-402e-a97d-86a076ca5063/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "02faa4dc-7e73-402e-a97d-86a076ca5063", "size": 8589934592, "self": "/v2/images/02faa4dc-7e73-402e-a97d-86a076ca5063", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/02faa4dc-7e73-402e-a97d-86a076ca5063/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/02faa4dc-7e73-402e-a97d-86a076ca5063/snap", "metadata": {}}], "min_disk": 0, "virtual_size": null, "name": "CentOS 7.5.1804 (x86_64) [2018-06-06]", "checksum": "aa7f819fabfd8c531ab560b30ec4946c", "created_at": "2018-08-27T17:35:17Z", "os_hidden": false, "protected": true, "os_hash_value": "1eac7b24621006ae5c056d9436870c94cfe83a93e696344f52a2eda1d19cf75c1593086c8a6f9399c7058df94847b3a94e36e2545ec221a0aa4f30c501f8bf96"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-27T17:31:29Z", "file": "/v2/images/3bbfcf36-f4e1-45e2-b970-16d00535942e/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "3bbfcf36-f4e1-45e2-b970-16d00535942e", "size": 2361393152, "self": "/v2/images/3bbfcf36-f4e1-45e2-b970-16d00535942e", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/3bbfcf36-f4e1-45e2-b970-16d00535942e/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/3bbfcf36-f4e1-45e2-b970-16d00535942e/snap", "metadata": {}}], "min_disk": 0, "virtual_size": null, "name": "Ubuntu 16.04 LTS (x86_64) [2018-08-24]", "checksum": "d135ab2a5195428a07f07f855a4b01c8", "created_at": "2018-08-27T17:30:55Z", "os_hidden": false, "protected": true, "os_hash_value": "46303ca18ac1faa588a68ccd2191061e45a5d1426fd70e1a8cb4b618eeddaabf5cf313fa3db08865cd20f393caf1dc592d91f969f320f7b57ec5508c24556fdf"}, {"container_format": "bare", "min_ram": 0, "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/e21da204-a5ae-4674-9693-bc19ad3de49f/snap", "metadata": {}}], "file": "/v2/images/e21da204-a5ae-4674-9693-bc19ad3de49f/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "e21da204-a5ae-4674-9693-bc19ad3de49f", "size": 6442450944, "os_distro": "fedora-atomic", "self": "/v2/images/e21da204-a5ae-4674-9693-bc19ad3de49f", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/e21da204-a5ae-4674-9693-bc19ad3de49f/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "owner_specified.shade.sha256": "55886dfec0307c0e83871115da6d65503ca95266768860d54c29499ad16fbec5", "updated_at": "2018-08-26T22:57:11Z", "visibility": "public", "owner_specified.shade.object": "images/Fedora Atomic 27 [2018-02-01]", "min_disk": 0, "virtual_size": null, "owner_specified.shade.md5": "63491f6a5289392662ee4809a50f5270", "name": "Fedora Atomic 27 [2018-02-01]", "checksum": "63491f6a5289392662ee4809a50f5270", "created_at": "2018-08-26T22:55:37Z", "os_hidden": false, "protected": false, "os_hash_value": "a43779fe6789c5ea1d5bbaee8916aab91ee224fe5a7fb63c1a54654c532ffd9c38995f33101db4a67fb6218fd2f1cbdddf1da4b2c738e42b75c48c123f94aa7b"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-26T04:50:32Z", "file": "/v2/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "83d33538-b366-4590-bb0a-a5cd9dbcce6e", "size": 2361393152, "self": "/v2/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e/snap", "metadata": {}}], "min_disk": 0, "virtual_size": null, "name": "Ubuntu 18.04 LTS (x86_64) [2018-08-23]", "checksum": "78618050983e1731cb1411a2e5104d39", "created_at": "2018-08-26T04:49:58Z", "os_hidden": false, "protected": true, "os_hash_value": "c0e6bde1b4786f92f5053e495444ed150d5d352d1571e5b2352e6a19013ccc5f1a73479052f1be139228fadde2a461ffae08a6441fd7cc30dc04fd7ab76a55e0"}], "schema": "/v2/schemas/images", "first": "/v2/images"}; line: 1, column: 586] (through reference chain: org.openstack4j.openstack.image.v2.domain.Images["images"]->java.util.ArrayList[0]->org.openstack4j.openstack.image.v2.domain.GlanceImage["locations"]->java.util.ArrayList[0])
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:216)
    at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:873)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseString(StdDeserializer.java:845)
    at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:206)
    at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:177)
    at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:20)
    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490)
    at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:277)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:249)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490)
    at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:101)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:260)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125)
    at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1575)
    at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1200)
    at org.openstack4j.connectors.okhttp.HttpResponseImpl.readEntity(HttpResponseImpl.java:122)
Caused: ClientResponseException{message=Can not deserialize instance of java.lang.String out of START_OBJECT token
 at [Source: {"images": [{"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-27T17:37:02Z", "file": "/v2/images/02faa4dc-7e73-402e-a97d-86a076ca5063/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "02faa4dc-7e73-402e-a97d-86a076ca5063", "size": 8589934592, "self": "/v2/images/02faa4dc-7e73-402e-a97d-86a076ca5063", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/02faa4dc-7e73-402e-a97d-86a076ca5063/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/02faa4dc-7e73-402e-a97d-86a076ca5063/snap", "metadata": {}}], "min_disk": 0, "virtual_size": null, "name": "CentOS 7.5.1804 (x86_64) [2018-06-06]", "checksum": "aa7f819fabfd8c531ab560b30ec4946c", "created_at": "2018-08-27T17:35:17Z", "os_hidden": false, "protected": true, "os_hash_value": "1eac7b24621006ae5c056d9436870c94cfe83a93e696344f52a2eda1d19cf75c1593086c8a6f9399c7058df94847b3a94e36e2545ec221a0aa4f30c501f8bf96"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-27T17:31:29Z", "file": "/v2/images/3bbfcf36-f4e1-45e2-b970-16d00535942e/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "3bbfcf36-f4e1-45e2-b970-16d00535942e", "size": 2361393152, "self": "/v2/images/3bbfcf36-f4e1-45e2-b970-16d00535942e", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/3bbfcf36-f4e1-45e2-b970-16d00535942e/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/3bbfcf36-f4e1-45e2-b970-16d00535942e/snap", "metadata": {}}], "min_disk": 0, "virtual_size": null, "name": "Ubuntu 16.04 LTS (x86_64) [2018-08-24]", "checksum": "d135ab2a5195428a07f07f855a4b01c8", "created_at": "2018-08-27T17:30:55Z", "os_hidden": false, "protected": true, "os_hash_value": "46303ca18ac1faa588a68ccd2191061e45a5d1426fd70e1a8cb4b618eeddaabf5cf313fa3db08865cd20f393caf1dc592d91f969f320f7b57ec5508c24556fdf"}, {"container_format": "bare", "min_ram": 0, "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/e21da204-a5ae-4674-9693-bc19ad3de49f/snap", "metadata": {}}], "file": "/v2/images/e21da204-a5ae-4674-9693-bc19ad3de49f/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "e21da204-a5ae-4674-9693-bc19ad3de49f", "size": 6442450944, "os_distro": "fedora-atomic", "self": "/v2/images/e21da204-a5ae-4674-9693-bc19ad3de49f", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/e21da204-a5ae-4674-9693-bc19ad3de49f/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "owner_specified.shade.sha256": "55886dfec0307c0e83871115da6d65503ca95266768860d54c29499ad16fbec5", "updated_at": "2018-08-26T22:57:11Z", "visibility": "public", "owner_specified.shade.object": "images/Fedora Atomic 27 [2018-02-01]", "min_disk": 0, "virtual_size": null, "owner_specified.shade.md5": "63491f6a5289392662ee4809a50f5270", "name": "Fedora Atomic 27 [2018-02-01]", "checksum": "63491f6a5289392662ee4809a50f5270", "created_at": "2018-08-26T22:55:37Z", "os_hidden": false, "protected": false, "os_hash_value": "a43779fe6789c5ea1d5bbaee8916aab91ee224fe5a7fb63c1a54654c532ffd9c38995f33101db4a67fb6218fd2f1cbdddf1da4b2c738e42b75c48c123f94aa7b"}, {"container_format": "bare", "min_ram": 0, "updated_at": "2018-08-26T04:50:32Z", "file": "/v2/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e/file", "owner": "d7594b0298b54bcc9e4e0f252e1da2e4", "id": "83d33538-b366-4590-bb0a-a5cd9dbcce6e", "size": 2361393152, "self": "/v2/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e", "disk_format": "raw", "os_hash_algo": "sha512", "direct_url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e/snap", "schema": "/v2/schemas/image", "status": "active", "tags": [], "visibility": "public", "locations": [{"url": "rbd://ecfa5955-a9b4-4410-a468-c7794a64faf6/images/83d33538-b366-4590-bb0a-a5cd9dbcce6e/snap", "metadata": {}}], "min_disk": 0, "virtual_size": null, "name": "Ubuntu 18.04 LTS (x86_64) [2018-08-23]", "checksum": "78618050983e1731cb1411a2e5104d39", "created_at": "2018-08-26T04:49:58Z", "os_hidden": false, "protected": true, "os_hash_value": "c0e6bde1b4786f92f5053e495444ed150d5d352d1571e5b2352e6a19013ccc5f1a73479052f1be139228fadde2a461ffae08a6441fd7cc30dc04fd7ab76a55e0"}], "schema": "/v2/schemas/images", "first": "/v2/images"}; line: 1, column: 586] (through reference chain: org.openstack4j.openstack.image.v2.domain.Images["images"]->java.util.ArrayList[0]->org.openstack4j.openstack.image.v2.domain.GlanceImage["locations"]->java.util.ArrayList[0]), status=0, status-code=CODE_UNKNOWN}
    at org.openstack4j.connectors.okhttp.HttpResponseImpl.readEntity(HttpResponseImpl.java:125)
    at org.openstack4j.core.transport.HttpEntityHandler.handle(HttpEntityHandler.java:66)
    at org.openstack4j.connectors.okhttp.HttpResponseImpl.getEntity(HttpResponseImpl.java:69)
    at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:225)
    at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:207)
    at org.openstack4j.openstack.image.v2.internal.ImageServiceImpl.list(ImageServiceImpl.java:45)
    at org.openstack4j.api.image.v2.ImageService$list.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
    at Script1.run(Script1.groovy:3)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:594)
    at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:142)
    at hudson.util.RemotingDiagnostics$Script.call(RemotingDiagnostics.java:114)
    at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
    at hudson.util.RemotingDiagnostics.executeGroovy(RemotingDiagnostics.java:111)
    at jenkins.model.Jenkins._doScript(Jenkins.java:4381)
    at jenkins.model.Jenkins.doScript(Jenkins.java:4352)
    at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
    at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:860)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:530)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
guilhermesteinmuller commented 6 years ago

Hello.

I rebuilt the plugin using 3.1.1-SNAPSHOT of openstack4j and here's my output:

def c = Jenkins.instance.clouds[0].openstack.@clientProvider.get()
println "V1 images: " + c.images().listAll().size()
println "\n"
println "V2 images: " + c.imagesV2().list().size()

V1 images: 0
V2 images: 4

But the images are not listed in the template definition

image

So maybe an issue of the plugin?

olivergondza commented 6 years ago

Fix proposed in https://github.com/jenkinsci/openstack-cloud-plugin/pull/218