Start a Conversation

Unsolved

JK

1 Rookie

 • 

17 Posts

58

October 17th, 2023 17:24

dellemc.powerscale.smartquota: - "msg": "Get Quota Details for ******** failed with Invalid value for `description`, must not be `None`"

Hi All,


I am working on Quota creation part and noticed it is working on SERVER_A , but the same code is failing on SERVER_B.
post those failing I checked manually and it is working file with same account.
Please find the error message below.


two thing to watch out is,
1) file creation was successful , in both cases without any issue , but failing while quota creation.

2)
SERVER_A is at onefs 9.2.1.15
SERVER_B is at onefs 9.4.0.14


=========S U C C E S S    L O G     S T A R T   - SERVER_A===============
changed: [xyz.domain.org] => {
    "changed": true,
    "invocation": {
        "module_args": {
            "access_zone": "System",
            "api_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "api_user": "isilon_user",
            "group_name": null,
            "onefs_host": "172.0.0.1<SERVER_A>",
            "path": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "port_no": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "provider_type": "local",
            "quota": {
                "advisory_limit_size": 10.0,
                "cap_unit": "GB",
                "container": true,
                "hard_limit_size": 13.0,
                "include_overheads": true,
                "include_snapshots": false,
                "period_unit": "weeks",
                "soft_grace_period": 1,
                "soft_limit_size": 11.0,
                "thresholds_on": null
            },
            "quota_type": "directory",
            "state": "present",
            "user_name": null,
            "verify_ssl": false
        }
    },
    "quota_details": {
        "container": true,
        "efficiency_ratio": 0.02587890625,
        "enforced": true,
        "id": "CJhaEwIAAAAAAAAAAAAAQPgAAAAAAAAA",
        "include_snapshots": false,
        "linked": false,
        "notifications": "default",
        "path": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
        "persona": null,
        "ready": true,
        "reduction_ratio": null,
        "thresholds": {
            "advisory": 10737418240,
            "advisory(GB)": "10.0",
            "advisory_exceeded": false,
            "advisory_last_exceeded": null,
            "hard": 13958643712,
            "hard(GB)": "13.0",
            "hard_exceeded": false,
            "hard_last_exceeded": null,
            "percent_advisory": null,
            "percent_soft": null,
            "soft": 11811160064,
            "soft(GB)": "11.0",
            "soft_exceeded": false,
            "soft_grace": 604800,
            "soft_last_exceeded": null
        },
        "thresholds_on": "fslogicalsize",
        "type": "directory",
        "usage": {
            "applogical": 0,
            "applogical_ready": true,
            "fslogical": 53,
            "fslogical_ready": true,
            "fsphysical": 2048,
            "fsphysical_ready": true,
            "inodes": 1,
            "inodes_ready": true,
            "physical": 2048,
            "physical_data": 0,
            "physical_data_ready": true,
            "physical_protection": 0,
            "physical_protection_ready": true,
            "physical_ready": true,
            "shadow_refs": 0,
            "shadow_refs_ready": true
        }
    }
}
========== S U C C E S S    L O G     E N D S   - SERVER_A ================


========== E R R O R    L O G     S T A R T   - SERVER_B =================
The full traceback is:
  File "/tmp/ansible_dellemc.powerscale.smartquota_payload_01r59iil/ansible_dellemc.powerscale.smartquota_payload.zip/ansible_collections/dellemc/powerscale/plugins/modules/smartquota.py", line 599, in get_quota_details
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api/quota_api.py", line 1865, in list_quota_quotas
    (data) = self.list_quota_quotas_with_http_info(**kwargs)  # noqa: E501
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api/quota_api.py", line 1985, in list_quota_quotas_with_http_info
    collection_formats=collection_formats)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 346, in call_api
    _preload_content, _request_timeout)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 185, in __call_api
    return_data = self.deserialize(response_data, response_type)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 257, in deserialize
    return self.__deserialize(data, response_type)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 296, in __deserialize
    return self.__deserialize_model(data, klass)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 671, in __deserialize_model
    kwargs[attr] = self.__deserialize(value, attr_type)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 274, in __deserialize
    for sub_data in data]
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 274, in <listcomp>
    for sub_data in data]
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 296, in __deserialize
    return self.__deserialize_model(data, klass)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/api_client.py", line 673, in __deserialize_model
    instance = klass(**kwargs)
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/models/quota_quota_extended.py", line 100, in __init__
    self.description = description
  File "/usr/local/lib/python3.6/site-packages/isilon_sdk/v9_4_0/models/quota_quota_extended.py", line 169, in description
    raise ValueError("Invalid value for `description`, must not be `None`")  # noqa: E501
fatal: [[xyz.domain.org]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "access_zone": "System",
            "api_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "api_user": "isilon_user",
            "group_name": null,
            "onefs_host": "172.0.0.2<SERVER_B>",
            "path": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "port_no": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "provider_type": "local",
            "quota": {
                "advisory_limit_size": 10.0,
                "cap_unit": "GB",
                "container": true,
                "hard_limit_size": 13.0,
                "include_overheads": true,
                "include_snapshots": false,
                "period_unit": "weeks",
                "soft_grace_period": 1,
                "soft_limit_size": 11.0,
                "thresholds_on": null
            },
            "quota_type": "directory",
            "state": "present",
            "user_name": null,
            "verify_ssl": false
        }
    },
    "msg": "Get Quota Details for ******** failed with Invalid value for `description`, must not be `None`"
}
======== E R R O R    L O G     E N D S   - SERVER_B ==================

1 Message

February 5th, 2024 18:38

I haven't tested this on OneFS 9.5+, but I did tested it on 9.4 as well.

I noticed that Ansible is still able to create the quota when this error happens, but since it seems somehow the none value is hard-coded for the description, then the run fails every time.

If you set up a description for the quota rule by any other means and then run the task again, you will notice that Ansible reports OK. I haven't checked the code either, but it seems like description was a mandatory parameter.

So, why not making the description a configurable parameter?

You can easily omit it if you don't need it, as long as it is optional. Adding a Description via Ansible would be valuable for somebody else though, IMHO.

EDIT: Tested this on OneFS 9.5.0.6. The quota has been created successfully with Ansible reporting properly a changed status. It seems like this is an issue specific to OneFS 9.4.0.x   

(edited)

No Events found!

Top