Skip to content

Creation of a volume snapshot fails when description field is set in the builder #236

@Razoff

Description

@Razoff

I am trying to create a snapshot of a volume using <osClient>.blockStorage().snapshots().create(vsnapshot)

Current Behavior

Snapshot is not created and receives a 400 error.

"{"badRequest": {"code": 400, "message": "Invalid input for field/attribute snapshot. Value: {'force': True, 'name': 'name', 'display_name': 'name', 'description': <description>', 'display_description': '<description>', 'volume_id': 'volId'}. Additional properties are not allowed ('display_description' was unexpected)"}}"

Expected Behavior

Snapshot is created.

Environment

Java information on the machine executing the code

java --version
openjdk 11.0.25 2024-10-15 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.25.0.9-1) (build 11.0.25+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.25.0.9-1) (build 11.0.25+9-LTS, mixed mode, sharing)

Openstack versions :

openstack versions show
+-------------+---------------+---------+-----------+--------------------------------+------------------+------------------+
| Region Name | Service Type  | Version | Status    | Endpoint                       | Min Microversion | Max Microversion |
+-------------+---------------+---------+-----------+--------------------------------+------------------+------------------+
| RegionOne   | object-store  | 1.0     | CURRENT   | <endpoint>/v1/   | None             | None             |
| RegionOne   | image         | 2.0     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.1     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.2     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.3     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.4     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.5     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.6     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.7     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.8     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.9     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.10    | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.11    | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.12    | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.13    | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.14    | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.15    | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | image         | 2.16    | CURRENT   | <endpoint>/v2/   | None             | None             |
| RegionOne   | block-storage | 3.0     | CURRENT   | <endpoint>/v3/   | 3.0              | 3.71             |
| RegionOne   | placement     | 1.0     | CURRENT   | <endpoint>/      | 1.0              | 1.39             |
| RegionOne   | metric        | 1.0     | CURRENT   | <endpoint>/v1/   | None             | None             |
| RegionOne   | alarm         | 2.0     | CURRENT   | <endpoint>/v2    | None             | None             |
| RegionOne   | identity      | 3.14    | CURRENT   | <endpoint>/v3/   | None             | None             |
| RegionOne   | compute       | 2.0     | SUPPORTED | <endpoint>/v2/   | None             | None             |
| RegionOne   | compute       | 2.1     | CURRENT   | <endpoint>/v2.1/ | 2.1              | 2.96             |
| RegionOne   | network       | 2.0     | CURRENT   | <endpoint>/v2.0/ | None             | None             |
+-------------+---------------+---------+-----------+--------------------------------+------------------+------------------+

openstack4j version:

		<dependency>
    		<groupId>com.github.openstack4j.core</groupId>
    		<artifactId>openstack4j</artifactId>
			<version>3.12</version>
			<classifier>withdeps</classifier>
		</dependency>

Impact

Low impact: Cannot put description in snapshot.

Workaround: Do not put anything in description.

Steps to Reproduce

        VolumeSnapshot vSnapshot = Builders.volumeSnapshot()
            .description("This snapshot done by somebody")
            .name("Snapshot name)
            .force(true)
            .volume(volumeId)
            .build();

        VolumeSnapshot ret = null;
        try {
            ret = this.osClient.blockStorage().snapshots().create(vSnapshot);
        } catch (Exception e) {
            log.fatal(e.getMessage(), e);
        }

Here e =

"org.openstack4j.api.exceptions.ClientResponseException{message=Invalid input for field/attribute snapshot. Value: {'force': True, 'name': '<name>', 'display_name': '<name>', 'description': <description>', 'display_description': ' <description>', 'volume_id': <volumeId>'}. Additional properties are not allowed ('display_description' was unexpected), status=400, status-code=BAD_REQUEST, X-Openstack-Request-Id=req-6ca89649-1aa3-4ac5-9723-a6cd88a262ff}"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions