[ 
https://issues.apache.org/jira/browse/IGNITE-13718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Chugunov updated IGNITE-13718:
-------------------------------------
    Description: 
Application developed in IGNITE-13712 should expose REST API for managing 
configuration and integrate with command-line tool prototype from IGNITE-13610.

The following simplistic API suggested:

GET to *{{/management/v1/configuration}}* - returns up-to-date configuration
POST to *{{/management/v1/configuration}}* - sets configuration from JSON 
passed in request's body

Example of reply to GET request:
{code:json}
{
  "local": {
    "baseline": {
      "auto_adjust": {
        "enabled": true,
        "timeout": 10000
      }
    },
    "dataStorage": {
      "pageSize": 4096,
      "storagePath": "/db/",
      "walPath": "",
      "walMode": "LOG_ONLY"
    }
  },
  "clusterWide": {
    "transactionConfiguration": {
      "defaultIsolation": "REPEATABLE_READ",
      "defaultConcurrency": "PESSIMISTIC",
      "defaultTimeout": 10_000
    }
  }
}
{code}

Examples of parameters of POST requests:

{code:json}
{
  "local": {
    "baseline": {
      "auto_adjust": {
        "enabled": false
      }
    }
}
{code}

{code:json}
{
  "clusterWide": {
    "transactionConfiguration": {
      "defaultIsolation": "READ_COMMITTED",
      "defaultConcurrency": "OPTIMISTIC"
    }
  }
}
{code}

In case of error (not recognizable string received, validation of configuration 
failed) service returns status code 500 and error message describing the 
situation:

{code:json}
{
  "error": {
    "type": "VALIDATION_FAILED",
    "message": "Field X should not be negative"
  }
}
{code}

OR

{code:json}
{
  "error": {
    "type": "CONFIG_UNRECOGNIZED",
    "message": "Passed configuration is not recognized"
  }
}
{code}

  was:
Application developed in IGNITE-13712 should expose REST API for managing 
configuration and integrate with command-line tool prototype from IGNITE-13610.

The following simplistic API suggested:

GET to *{{/management/v1/configuration}}* - returns up-to-date configuration
POST to *{{/management/v1/configuration}}* - sets configuration from JSON 
passed in request's body

Example of reply to GET request:
{code:json}
{
  "local": {
    "baseline": {
      "auto_adjust": {
        "enabled": true,
        "timeout": 10000
      }
    },
    "dataStorage": {
      "pageSize": 4096,
      "storagePath": "/db/",
      "walPath": "",
      "walMode": "LOG_ONLY"
    }
  },
  "clusterWide": {
    "transactionConfiguration": {
      "defaultIsolation": "REPEATABLE_READ",
      "defaultConcurrency": "PESSIMISTIC",
      "defaultTimeout": 10_000
    }
  }
}
{code}

Examples of parameters of POST requests:

{code:json}
{
  "local": {
    "baseline": {
      "auto_adjust": {
        "enabled": false
      }
    }
}
{code}

{code:json}
{
  "clusterWide": {
    "transactionConfiguration": {
      "defaultIsolation": "READ_COMMITTED",
      "defaultConcurrency": "OPTIMISTIC"
    }
  }
}
{code}


> REST API to manage configuration
> --------------------------------
>
>                 Key: IGNITE-13718
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13718
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Sergey Chugunov
>            Assignee: Sergey Chugunov
>            Priority: Major
>              Labels: ignite-3
>
> Application developed in IGNITE-13712 should expose REST API for managing 
> configuration and integrate with command-line tool prototype from 
> IGNITE-13610.
> The following simplistic API suggested:
> GET to *{{/management/v1/configuration}}* - returns up-to-date configuration
> POST to *{{/management/v1/configuration}}* - sets configuration from JSON 
> passed in request's body
> Example of reply to GET request:
> {code:json}
> {
>   "local": {
>     "baseline": {
>       "auto_adjust": {
>         "enabled": true,
>         "timeout": 10000
>       }
>     },
>     "dataStorage": {
>       "pageSize": 4096,
>       "storagePath": "/db/",
>       "walPath": "",
>       "walMode": "LOG_ONLY"
>     }
>   },
>   "clusterWide": {
>     "transactionConfiguration": {
>       "defaultIsolation": "REPEATABLE_READ",
>       "defaultConcurrency": "PESSIMISTIC",
>       "defaultTimeout": 10_000
>     }
>   }
> }
> {code}
> Examples of parameters of POST requests:
> {code:json}
> {
>   "local": {
>     "baseline": {
>       "auto_adjust": {
>         "enabled": false
>       }
>     }
> }
> {code}
> {code:json}
> {
>   "clusterWide": {
>     "transactionConfiguration": {
>       "defaultIsolation": "READ_COMMITTED",
>       "defaultConcurrency": "OPTIMISTIC"
>     }
>   }
> }
> {code}
> In case of error (not recognizable string received, validation of 
> configuration failed) service returns status code 500 and error message 
> describing the situation:
> {code:json}
> {
>   "error": {
>     "type": "VALIDATION_FAILED",
>     "message": "Field X should not be negative"
>   }
> }
> {code}
> OR
> {code:json}
> {
>   "error": {
>     "type": "CONFIG_UNRECOGNIZED",
>     "message": "Passed configuration is not recognized"
>   }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to