1.4. API Endpoints - File Management and Storage¶
1.4.1. File¶
1.4.1.1. GET /file/¶
Description
The /file/ API endpoint not only lists the files and folders under a specified path for a given site but also returns important metadata (details) about each item. These details provide valuable context about the nature, state, and attributes of each file, enabling more informed decisions and automated actions in file management systems.
Each file or folder returned by the endpoint includes a structured set of fields such as its name, type, size, creation/modification timestamps, access status, and more.
Additionally, each item is associated with a specific site. This ensures that files are clearly scoped to their respective locations, enabling secure, site-aware management and control.
Request Parameters
Parameter |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
The target directory path to browse. (e.g., a path or virtual root). |
|
string |
Yes |
The name of the site. |
|
integer |
No |
Page number for paginated results. Defaults to 1. |
|
integer |
No |
Number of items per page (20–100). Use 0 to disable pagination. |
|
boolean |
No |
If true, returns detailed metadata for child files/folders. Defaults to false. |
|
boolean |
No |
If true, includes restricted (e.g., hidden) objects. Defaults to false. |
|
integer |
No |
Duration (in seconds) for caching the result. |
|
string |
No |
Filter by item type (e.g., |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/file/?path=mmfs1&site=siteA&details=false&restricted=false' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"url": "http://your-hub-address:8000/api/file/?path=mmfs1&site=siteA&details=false&restricted=false",
"site": "siteA",
"path": "mmfs1",
"type": "directory",
"size": 262144,
"ctime": "2025-05-14T12:01:11.995371Z",
"mtime": "2025-05-14T12:01:11.995176Z",
"atime": "2025-06-23T14:13:11.940276Z",
"children": {
"count": 1,
"next": null,
"previous": null,
"results": [
{
"site": "siteA",
"path": "mmfs1/data",
"name": "data",
"type": "directory",
"size": 0,
"deleted": false,
"restricted": false,
"status": "online"
}
]
}
}
Response Fields
Field |
Type |
Description |
|---|---|---|
|
string |
URL of the current directory view. |
|
string |
Site name the data belongs to. |
|
string |
Current directory path. |
|
string |
Always |
|
integer |
Size of the directory (in bytes). |
|
string |
Creation, modification, and access timestamps (ISO format). |
|
integer |
Number of child items in this directory. |
|
array |
List of file or folder objects under this path. |
1.4.1.2. POST /file/workflow/¶
Description
The /file/workflow/ API endpoint initiates a specified Workflow Operation on a list of files or directories within a given site.
Workflows can perform automated actions such as migration, deletion, or metadata updates on targeted file paths. This operation supports recursive discovery and accepts additional workflow-specific parameters.
Request Parameters
Parameter |
Type |
Required |
Description |
|---|---|---|---|
|
array |
Yes |
List of target file or directory paths to apply the workflow to. |
|
string |
Yes |
The primary site on which the workflow is executed. |
|
string |
Yes |
How to discover files: |
|
string |
Yes |
Name of the workflow to execute (e.g., |
|
object |
No |
Optional workflow-specific fields. Example: |
Example Request
curl -X 'POST' \
'http://your-hub-address:8000/api/file/workflow/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key' \
-H 'Content-Type: application/json' \
-d '{
"paths": [{"path": "/mmfs1/data/"}],
"site": "siteA",
"discovery": "recursive",
"workflow": "migrate",
"fields": {
"lock_level": "implicit"
}
}'
Note
In this example, the /file/workflow/ API is used to trigger a migrate workflow on the directory /mmfs1/data/ within the given site.
The "discovery": "recursive" parameter means the workflow applies to the specified directory and all of its contents, including files and nested subdirectories.
The "fields" section sets "lock_level": "implicit", which controls how files are locked or reserved during the migration process.
The response confirms that a migration job has started, providing a job ID, status (STARTED), and a list of task IDs representing the operations in progress.
This kind of workflow is useful for moving data across storage systems, preparing content for processing, or archiving large data sets within a site managed by the Hub.
Successful Response
HTTP Status Code: 201 Created
Content-Type: application/json
Example Response
{
"url": "http://your-hub-address:8000/api/jobs/38/",
"id": 38,
"workflow": "migrate",
"fields": {
"lock_level": "implicit"
},
"created": "2025-06-24T13:17:09.771857Z",
"started": "2025-06-24T13:17:09.818646Z",
"completed": null,
"runtime": 0.088984,
"state": "STARTED",
"site": "siteA",
"queue": "default",
"owner": {
"type": "user",
"id": 2,
"name": "hubadmin"
},
"discovery": "recursive",
"is_settings_job": false,
"friendly_name": "Dehydrate of '/mmfs1/data/' on 'siteA'",
"progress": null,
"tasks": [266, 265, 267]
}
Response Fields
Field |
Type |
Description |
|---|---|---|
|
integer |
Job ID representing the submitted workflow operation. |
|
string |
API link to check job status and details. |
|
string |
Name of the executed workflow. |
|
object |
Workflow-specific parameters used in this execution. |
|
datetime |
Timestamp when the job was created. |
|
datetime |
Timestamp when execution started. |
|
datetime |
Timestamp when execution completed ( |
|
float |
Time (in seconds) taken so far. |
|
string |
Current job state: |
|
string |
Site where the workflow was executed. |
|
string |
Job queue used, usually |
|
object |
User who triggered the job (includes |
|
string |
Discovery mode used ( |
|
string |
Human-readable job description. |
|
object/null |
Progress tracking info ( |
|
array |
List of task IDs spawned by this job. |
1.4.2. Filesystems¶
1.4.2.1. GET /filesystems/¶
Description
The /filesystems/ API endpoint retrieves a list of available file systems across all configured sites. Each file system is associated with a specific site and includes basic metadata such as its name and mount point.
This endpoint is particularly useful, where each site may host its own instance of a distributed file system (e.g., GPFS/Spectrum Scale), and operations need to be scoped accordingly.
Note
A filesystem is a structured method of storing, organizing, and accessing data on a storage device.
In multi-site platforms like Ngenea Hub, a filesystem refers to a mounted storage volume, such as mmfs1 that exists within a specific site. Each filesystem is uniquely identified by its name and mount point, and it serves as the root for all file and directory operations within that site.
This logical storage environment serves as the root for files, directories, and filesets within the associated site.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
|
integer |
No |
Page number of the result set. Defaults to 1 if not specified. |
|
integer |
No |
Number of results to return per page. Must be between 20 and 100. Use 0 to return all results without pagination. Defaults to 20 if not specified or below the minimum. |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/filesystems/?page=1&page_size=1' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"name": "mmfs1",
"site": "siteA",
"mountpoint": "/mmfs1"
},
{
"name": "mmfs1",
"site": "siteB",
"mountpoint": "/mmfs1"
}
]
}
Response Fields
Top-Level Fields
Field |
Type |
Description |
|---|---|---|
|
integer |
Total number of file systems across all pages. |
|
string |
URL to the next page of results (if any). |
|
string |
URL to the previous page of results (if any). |
|
array |
List of file systems with their metadata. |
Each item in the results array contains:
Field |
Type |
Description |
|---|---|---|
|
string |
Name of the file system (e.g., |
|
string |
Name of the site where this file system is mounted. |
|
string |
Mount path of the file system on that site. |
1.4.2.2. GET /filesystems/{id}/¶
Description
The GET /filesystems/{id}/ endpoint retrieves detailed information about a specific filesystem space by its unique ID. This is useful for querying metadata about a filesystem space associated with a particular site—such as its name and mount location.
This endpoint is typically used when you already know the filesystem’s ID (from a /filesystems/ list call) and want to fetch more focused data for display or internal logic.
Request Parameters
Parameter |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
The unique identifier of the filesystem. |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/filesystems/1/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"name": "mmfs1",
"site": "siteA",
"mountpoint": "/mmfs1"
}
Response Fields
Please check the above endpoint to understand the response field.
1.4.3. Filesets¶
A fileset is a logical subdivision of a filesystem, used to organize, manage, and apply policies to files in a more granular way. In Ngenea Hub, a fileset is automatically created when a space is created.
It provides an isolated namespace within a filesystem, allowing for features such as:
Independent data management (e.g., quota, snapshots)
Enhanced access control
Simplified backup and archiving
Note
The term “fileset” comes from its role: a set of files grouped by policy, location, or purpose within a larger filesystem. This abstraction helps manage large-scale data more efficiently.
1.4.3.1. GET /filesets/¶
Description
This API endpoint allows users to retrieve all filesets for a specific site.
Request Parameters
Name |
Type |
Location |
Required |
Description |
|---|---|---|---|---|
|
string |
query |
Yes |
Name of the site (minimum 1 character) where file sets are defined. |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/filesets/?site=siteA' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
[
{
"path": "/mmfs1/data/Test_Space",
"site": "qatest-pdevan-testplugin-siteA",
"name": "sas1-Test_Space",
"label": "sas1-Test_Space",
"filesystem": "mmfs1"
}
]
Response Fields
Field |
Type |
Description |
|---|---|---|
|
string |
Full path to the fileset within the filesystem. |
|
string |
The name of the site the fileset belongs to. |
|
string |
The internal name of the fileset. |
|
string |
The display label of the fileset. |
|
string |
The parent filesystem this fileset resides in. |
1.4.4. Sites¶
In Ngenea Hub, a site represents a distinct location or system within the Ngenea Hub ecosystem where data and events are managed and synchronized. Each site is identified by a unique name, which is crucial for tracking, managing, and reflecting events (such as file updates or deletions) across the distributed environment.
1.4.4.1. GET /sites/¶
Description
The GET /sites/ endpoint allows you to retrieve a list of all sites registered in your Ngenea Hub system. Each site represents a physical or cloud-based server managed by the Hub. The endpoint supports pagination and provides detailed metadata about each site, such as its name, type, associated storage spaces, and file statistics.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
|
integer |
No |
Page number of the result set. Defaults to 1 if not specified. |
|
integer |
No |
Number of results to return per page. Must be between 20 and 100. Use 0 to return all results without pagination. Defaults to 20 if not specified or below the minimum. |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/sites/?page=1' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"url": "http://your-hub-address:8000/api/sites/1/",
"id": 1,
"name": "siteA",
"shortcode": "CXL",
"label": "siteA",
"am_i_configured": true,
"bandwidth": 0,
"spaces": ["mmfs1", "Test_Space"],
"type": "CLOUD",
"directories_count": 317,
"files_count": 977,
"files_hydrated_count": 977,
"files_stubbed_count": 0,
"editable": true,
"public_url": "https://your-hub-address",
"color": [170, 232, 242],
"ready_to_configure": true
},
{
"url": "http://your-hub-address:8000/api/sites/2/",
"id": 2,
"name": "siteB",
"shortcode": "I17",
"label": "siteB",
"am_i_configured": true,
"bandwidth": 0,
"spaces": ["mmfs1"],
"type": "CLOUD",
"directories_count": 317,
"files_count": 1001,
"files_hydrated_count": 1001,
"files_stubbed_count": 0,
"editable": true,
"public_url": "https://10.201.2.185",
"color": [227, 170, 242],
"ready_to_configure": true
}
]
}
Response Fields
Top-Level Fields
Field |
Type |
Description |
|---|---|---|
|
integer |
Total number of sites available. |
|
string/null |
URL to the next page of results, or |
|
string/null |
URL to the previous page of results, or |
|
array |
List of site objects returned for the current page. |
results[] Object Fields
Field |
Type |
Description |
|---|---|---|
|
string |
API URL for the specific site resource. |
|
integer |
Unique identifier of the site. |
|
string |
Name of the site. |
|
string |
Short code representing the site. |
|
string |
Label for the site. |
|
boolean |
Indicates if the site is configured. |
|
integer |
Bandwidth limit for the site. |
|
array of strings |
List of associated spaces for the site. |
|
string |
Type of the site (e.g., |
|
integer |
Number of directories in the site. |
|
integer |
Total number of files in the site. |
|
integer |
Number of hydrated files. |
|
integer |
Number of stubbed files. |
|
boolean |
Whether the site is editable. |
|
string |
Public URL to access the site. |
|
array of integers |
RGB color values representing the site color. |
|
boolean |
Indicates if the site is ready to be configured. |
1.4.4.2. POST /sites/¶
Description
Creates a new site with the specified properties, including spaces, name, configuration parameters, and metadata.
Request Parameters
Name |
Type |
Location |
Description |
|---|---|---|---|
|
object |
body |
JSON object containing the site details and configuration settings. |
Example Request
curl -X 'POST' \
'http://your-hub-address:8000/api/sites/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key' \
-H 'Content-Type: application/json' \
-d '{
"spaces": ["mmfs1"],
"name": "testexample",
"shortcode": "str",
"file_batch_size": 40,
"file_batch_gb": 1,
"enable_auto_file_batch_sizing": true,
"lock_threshold": 86400,
"bandwidth": 0,
"elasticsearch_url": "localhost:9200",
"pixstor_search_url": "https://localhost",
"public_url": "https://pixstor-mn-001",
"include": [],
"exclude": [],
"label": "string",
"am_i_configured": true,
"type": "CLOUD",
"color": [242, 170, 235],
"files_count": 2147483647,
"directories_count": 2147483647,
"files_stubbed_count": 2147483647,
"files_hydrated_count": 2147483647,
"gpfs_iscan_buckets": 2147483647,
"gpfs_iscan_threads": 2147483647,
"ready_to_configure": true
}'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"id": 3,
"url": "http://10.201.2.224:8000/api/sites/3/",
"name": "testexample",
"shortcode": "str",
"label": "string",
"spaces": ["mmfs1"],
"file_batch_size": 40,
"file_batch_gb": 1,
"enable_auto_file_batch_sizing": true,
"lock_threshold": 86400,
"bandwidth": 0,
"elasticsearch_url": "localhost:9200",
"pixstor_search_url": "https://localhost",
"public_url": "https://pixstor-mn-001",
"include": [],
"exclude": [],
"am_i_configured": true,
"type": "CLOUD",
"color": [242, 170, 235],
"files_count": 2147483647,
"directories_count": 2147483647,
"files_stubbed_count": 2147483647,
"files_hydrated_count": 2147483647,
"gpfs_iscan_buckets": 2147483647,
"gpfs_iscan_threads": 2147483647,
"ready_to_configure": true,
"editable": true
}
Response Fields
Refer to the requests body fields under GET/SITES.
1.4.4.3. GET /sites/{id}/¶
Description
Retrieves detailed information about a specific site by its unique ID.
Request Parameters
Name |
Type |
Location |
Description |
|---|---|---|---|
|
string |
path |
The unique ID of the site. |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/sites/2/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"url": "http://your-hub-address:8000/api/sites/2/",
"spaces": [
{
"url": "http://your-hub-address:8000/api/spaces/1/",
"id": 1,
"name": "mmfs1"
}
],
"editable": true,
"id": 2,
"name": "siteB",
"shortcode": "I17",
"file_batch_size": 40,
"file_batch_gb": 1,
"enable_auto_file_batch_sizing": true,
"lock_threshold": 86400,
"bandwidth": 0,
"elasticsearch_url": "localhost:19200",
"pixstor_search_url": null,
"public_url": "https://10.201.2.185",
"include": null,
"exclude": null,
"label": "siteB",
"am_i_configured": true,
"type": "CLOUD",
"color": [227, 170, 242],
"files_count": 1001,
"directories_count": 317,
"files_stubbed_count": 0,
"files_hydrated_count": 1001,
"gpfs_iscan_buckets": null,
"gpfs_iscan_threads": null,
"ready_to_configure": true
}
Response Fields
Refer to the requests body fields under GET/SITES.
1.4.4.4. PATCH /sites/{id}/¶
Description
Updates an existing site’s properties using partial or full data. Only the fields included in the request will be updated.
Request Parameters
Name |
Type |
Location |
Description |
|---|---|---|---|
|
string |
path |
The unique ID of the site to update. |
|
object |
body |
JSON object containing the fields to update. |
Example Request
curl -X 'PATCH' \
'http://your-hub-address:8000/api/sites/3/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key' \
-H 'Content-Type: application/json' \
-d '{
"spaces": ["mmfs1"],
"name": "testexample",
"shortcode": "Te",
"label": "string"
}'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"url": "http://your-hub-address:8000/api/sites/3/",
"spaces": [
{
"url": "http://your-hub-address:8000/api/spaces/1/",
"id": 1,
"name": "mmfs1"
}
],
"editable": true,
"id": 3,
"name": "testexample",
"shortcode": "Te",
"label": "string",
"type": "CLOUD",
"ready_to_configure": true
}
Note
The site with ID 3 was successfully updated with example values (e.g., shortcode: “Te”, label: “TestEx”). Any subset of parameters can be provided in the PATCH request to update specific fields as per user requirements.
Response Fields
The response includes all updated site fields. These are the same as those returned in GET /sites/{id}/.
1.4.4.5. DELETE /sites/{id}/¶
Description
Deletes a specific site identified by its unique ID.
Request Parameters
Name |
Type |
Location |
Description |
|---|---|---|---|
|
string |
path |
The unique ID of the site. |
Example Request
curl -X 'DELETE' \
'http://your-hub-address:8000/api/sites/4/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 204 No Content — No response body returned.
Note
Site with ID 4 was deleted. This operation is irreversible. Ensure the correct ID is passed, as all associated metadata and configuration will be permanently removed.
1.4.4.6. GET /sites/{id}/health/¶
Description Retrieves the health status of a specific site, including the health of its nodes and queues.
Health represents the overall operational status of the site and its components, indicating whether they are functioning correctly, online, and responsive. A status of “ok” means the site and its nodes and queues are running normally without issues.
Request Parameters
Name |
Type |
Location |
Description |
|---|---|---|---|
|
string |
path |
The unique ID of the site. |
Example Request
curl -X 'GET' \
'http://10.201.2.224:8000/api/sites/2/health/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key xxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"site": "qatest-pdevan-testplugin-siteB",
"health": "ok",
"nodes": [
{
"name": "qatest-pdevan-testplugin-siteB-1",
"health": "ok",
"online": true,
"has_default_queue": true,
"last_heartbeat": "2025-07-03T15:34:59.540149+00:00",
"worker_version": "2.6.0",
"ngenea_version": "1.31.0",
"analytics_version": "2.7.1",
"search_version": "1.2.0"
}
],
"queues": [
{
"name": "default",
"health": "ok",
"online": true,
"last_heartbeat": "2025-07-03T15:35:09.552068+00:00"
}
]
}
Response Fields
Site Health Response Fields
Field |
Type |
Description |
|---|---|---|
|
string |
Name of the site. |
|
string |
Overall health status of the site (e.g., |
|
array |
List of node health objects. |
nodes[] Object Fields
Field |
Type |
Description |
|---|---|---|
|
string |
Name of the node. |
|
string |
Health status of the node. |
|
boolean |
Whether the node is online. |
|
boolean |
Whether the node has a default queue configured. |
|
string |
Timestamp of the last heartbeat received from the node. |
|
string |
Version of the worker component (if available). |
|
string |
Version of the ngenea component (if available). |
|
string |
Version of the analytics module (if available). |
|
string |
Version of the search module (if available). |
|
string |
Version fetch status message (if any errors). |
queues[] Object Fields
Field |
Type |
Description |
|---|---|---|
|
string |
Queue name (e.g., |
|
string |
Health status of the queue. |
|
boolean |
Whether the queue is online. |
|
string |
Timestamp of the last heartbeat from the queue. |
1.4.4.7. POST /sites/{id}/refresh/¶
Description
Triggers a refresh operation for the specified site, which may include updating analytics, fetching remote servers, loading storage pools, and checking space/site quotas asynchronously.
Example Request
curl -X 'POST' \
'http://your-hub-address:8000/api/sites/2/refresh/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key' \
-d ''
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
{
"dynamocore.tasks.site.fetch_site_analytics": "4fb5b60a-630e-4adb-b946-2c555184f0a4",
"dynamocore.tasks.server.get_remote_servers": "900d2b0e-1c78-422e-82c7-c6ac84a9693c",
"dynamocore.tasks.admin.load_storagepools": "7edadbc1-c400-4d19-b0b5-6af348085e5c",
"dynamocore.tasks.space_site.send_check_space_site_quota": "34d94c8b-d4e4-4357-bf65-d589f920dbd6"
}
Response Fields
Field |
Type |
Description |
|---|---|---|
Task names as keys |
string |
Identifiers for the triggered asynchronous tasks. |
Task IDs as values |
string |
UUIDs representing each task instance. |
1.4.4.8. GET /sites/{id}/settings/¶
Description
This API endpoint retrieves the configuration settings for a specific site identified by its id. These settings control various operational parameters such as backup schedules, logging, monitoring, network configurations, and other system behaviors related to the site.
Accessing site settings is essential for administrators or automated systems to review, audit, or adjust the configurations without direct access to the server. It allows monitoring of the current configuration state and supports troubleshooting, compliance checks, and dynamic adjustments to the site behavior.
Request Parameters
Name |
Type |
Location |
Description |
|---|---|---|---|
|
string |
path |
The unique identifier of the site. |
|
boolean |
query |
Return settings as a flat dictionary ( |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/sites/2/settings/?flat=false' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
[
{
"id": 32,
"key": "apbackup:schedule",
"value": "*-*-* 01:00:00",
"desc": "The systemd calendar event for configuring the systemd timer service that runs apbackup."
},
{
"id": 36,
"key": "email:arcapix_alert_address",
"value": "alerts@pixitmedia.com",
"desc": "Description not specified"
},
{
"id": 37,
"key": "monitoring:auth:monitoring_internal",
"value": "********************",
"desc": "Description not specified"
},
{
"id": 42,
"key": "ntp:servers",
"value": [
"0.centos.pool.ntp.org",
"1.centos.pool.ntp.org",
"2.centos.pool.ntp.org",
"3.centos.pool.ntp.org"
],
"desc": "list of NTP servers"
}
// more settings ...
]
Response Fields
Field |
Description |
|---|---|
|
Setting unique identifier. |
|
The setting key name. |
|
The setting value (may be string, bool, array, etc.). |
|
Description of the setting (may be |
1.4.4.9. POST /sites/{id}/settings/refresh/¶
Description
The POST /sites/{id}/settings/refresh/ endpoint is used to refresh the settings for a specific site identified by id. This action can be used to update existing settings or create settings in the Ngenea Hub if none exist for the given site. It’s an asynchronous process, meaning the operation will be carried out in the background, and you can track its progress via a task ID.
Request Parameters
Name |
Type |
Location |
Description |
|---|---|---|---|
|
string |
path |
Required. Unique identifier of the site to refresh settings for. This is part of the URL path. |
Example Request
curl -X 'POST' \
'http://10.201.2.224:8000/api/sites/2/settings/refresh/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key' \
-d ''
Successful Response
HTTP Status Code: 202 Accepted
This indicates that the request has been accepted and is now being processed, but the operation has not completed yet. The task is running asynchronously, so you can track its progress with the task_id.
Content-Type: application/json
Example Response
{
"task_id": "201ef094-5e55-42b7-818b-1e586c52bda0"
}
Response Fields
Field |
Type |
Description |
|---|---|---|
|
string |
A unique identifier for the refresh task. Use this ID to track its progress or retrieve status. |
1.4.6. Spaces¶
A Space represents a logical storage area within the PixStor environment that spans one or more storage systems. Each Space is defined by key attributes such as name, location, size, data protection level, performance profile, and file share accessibility.
Spaces allow for centralized or site-specific access to storage resources and support both global and local views. Access to Spaces is governed by user roles and group permissions, enabling flexible control for administrators, users, and restricted users.
This endpoint allows interaction with Spaces for purposes such as retrieving details, listing available Spaces, or performing administrative actions depending on access level.
1.4.6.1. GET /spaces/¶
Description
The GET /spaces/ API endpoint retrieves a list of space objects from the file browser. Each space represents a storage area (mount point) that may span across multiple sites with metadata such as snapshot schedule, shares, nested shares, and more.
This endpoint supports pagination and provides detailed information per space including IDs, names, sizes, site associations, usage stats, snapshot configurations, and relationships.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
|
integer |
No |
Page number of the result set. Defaults to 1 if not specified. |
|
integer |
No |
Number of results to return per page. Must be between 20 and 100. Use 0 to return all results without pagination. Defaults to 20 if not specified or below the minimum. |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/spaces/?page=1&page_size=1' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"url": "http://your-hub-address:8000/api/spaces/3/",
"id": 3,
"uuid": "6526e45d-5d5e-41c8-8c49-d68efdaab7d5",
"name": "API_Example",
"mountpoint": "/mmfs1/data/API_Example",
"sites": [
{
"id": 1,
"name": "siteA",
"label": "siteA",
"pool": "sas1",
"usage": [0, 1099511627776]
}
],
"created": "2025-07-04T14:18:07.227156Z",
"size": 1099511627776,
"snapshot_schedule": {
"id": 2,
"frequency": "1 00:00:00",
"time": "00:13:00",
"duration": "7 00:00:00",
"space": 3
},
"on_sites": {
"qatest-pdevan-testplugin-siteA": {
"name": "API_Example",
"size": 1099511627776,
"present": true,
"syncing": true
}
},
"immutable": false,
"editable": true,
"color": [111, 64, 191],
"permission_mode": null,
"relationships": {
"shares": [],
"policies": [],
"schedules": [
{
"id": 3,
"name": "Test4",
"discovery": "recursive"
}
]
},
"nested_shares": {
"samba": [],
"nfs": []
},
"is_ready": true
}
]
}
Response Fields
Field |
Description |
|---|---|
|
Internal unique ID of the space. |
|
Universally unique identifier. |
|
Name of the space. |
|
Filesystem mount path of the space. |
|
List of site objects the space is linked to, each with pool and usage data. |
|
Creation timestamp of the space. |
|
Total size in bytes. |
|
Optional object defining backup/snapshot timing and frequency. |
|
Map of site names to presence, size, and sync status of the space. |
|
Boolean. Whether the space can be modified. |
|
Boolean. Indicates whether the space settings can be modified. This depends on the permissions of the user making the request. |
|
RGB color array for display purposes. |
|
(Optional) Permission configuration. |
|
Contains related shares, policies, and scan schedules. |
|
Samba and NFS shares nested within the space. |
|
Boolean. Indicates if the space is ready to be used. |
1.4.6.2. POST / spaces/¶
Description
The POST /spaces/ endpoint allows you to create a new space in the system. When posting, you define metadata like: Name & mount path, Associated sites, Size, Snapshot schedule (optional), Visual settings like color, Permission handling.
Request Parameters
Name |
Location |
Type |
Required |
Description |
|---|---|---|---|---|
|
body |
object |
Yes |
JSON object representing the space |
Example Request
curl -X 'POST' \
'http://your-hub-address:8000/api/spaces/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key' \
-H 'Content-Type: application/json' \
-d '{
"name": "post_example",
"mountpoint": "/mmfs2",
"sites": [
{
"name": "siteA"
}
],
"size": 922337203685477,
"snapshot_schedule": {
"frequency": "1 00:00:00",
"time": "00:00:00",
"duration": "7 00:00:00"
},
"color": [255, 255, 255],
"permission_mode": "chmodOnly"
}'
Request Body Fields
Field |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
Name of the space. Must be unique. |
|
string |
Yes |
Must start with |
|
list |
Yes |
List of sites (by name) to associate the space with. |
|
integer |
Yes |
Space size in bytes. |
|
object |
Optional |
Defines snapshot automation. |
├─ |
string |
Optional |
Format like |
├─ |
string |
Optional |
Time of day to run snapshots (e.g., |
├─ |
string |
Optional |
Duration to retain snapshots (e.g., |
|
array |
Optional |
RGB array for UI display (e.g., |
|
string |
Optional |
Permission handling mode (e.g., |
Successful Response
HTTP Status Code: 201 CREATED
Content-Type: application/json
Example Response
{
"url": "http://your-hub-address:8000/api/spaces/7/",
"id": 7,
"uuid": "1d485bb0-4680-4a87-b64b-cb757bc82ccf",
"name": "post_example",
"mountpoint": "/mmfs2",
"sites": [
{
"id": 1,
"name": "siteA",
"label": "siteA",
"pool": null,
"usage": null
}
],
"created": "2025-08-11T16:03:18.974929Z",
"size": 922337203685477,
"snapshot_schedule": {
"id": 3,
"frequency": "1 00:00:00",
"time": "00:00:00",
"duration": "7 00:00:00",
"space": 7
},
"on_sites": {},
"immutable": false,
"editable": true,
"color": [255, 255, 255],
"permission_mode": "chmodOnly",
"relationships": {
"shares": [],
"policies": [],
"schedules": []
},
"nested_shares": {
"samba": [],
"nfs": []
},
"is_ready": false
}
Response Fields
Field |
Description |
|---|---|
|
API URL to access this space. |
|
Unique ID of the space. |
|
Universally unique ID. |
|
Name of the created space. |
|
Mount path starting with |
|
List of site objects associated with this space. |
├─ |
Site metadata. |
|
Timestamp when the space was created. |
|
Size of the space in bytes. |
|
Object showing snapshot config and assigned ID. |
├─ |
Snapshot metadata. |
|
Mapping of space presence/sync on each site (may be empty initially). |
|
Indicates if space is read-only. |
|
Indicates if settings can be changed. |
|
RGB color for UI (e.g., |
|
Permission mode applied (e.g., |
|
Linked resources: shares, policies, schedules. |
|
Nested NFS/Samba shares inside this space. |
|
Indicates if space is ready for use (typically |
1.4.6.3. GET /spaces/{id}/¶
Description
The GET /spaces/{id}/ endpoint retrieves detailed information about a specific space, identified by its ID. It returns metadata about the space, such as: Mount path and name, Associated sites, Size and usage, Snapshot schedule, Synchronization status, Shares, policies, schedules, Readiness and permissions.
Request Parameters
Name |
Location |
Type |
Required |
Description |
|---|---|---|---|---|
|
path |
string |
Yes |
The numeric ID of the space to retrieve (e.g., |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/spaces/3/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"url": "http://your-hub-address:8000/api/spaces/3/",
"id": 3,
"uuid": "6526e45d-5d5e-41c8-8c49-d68efdaab7d5",
"name": "API_Example",
"mountpoint": "/mmfs1/data/API_Example",
"sites": [
{
"id": 1,
"name": "siteA",
"label": "siteA",
"pool": "sas1",
"usage": [0, 1099511627776]
}
],
"created": "2025-07-04T14:18:07.227156Z",
"size": 1099511627776,
"snapshot_schedule": {
"id": 2,
"frequency": "1 00:00:00",
"time": "00:13:00",
"duration": "7 00:00:00",
"space": 3
},
"on_sites": {
"siteA": {
"name": "API_Example",
"size": 1099511627776,
"present": true,
"syncing": true
}
},
"immutable": false,
"editable": true,
"color": [111, 64, 191],
"permission_mode": null,
"relationships": {
"shares": [],
"policies": [],
"schedules": [
{
"id": 3,
"name": "Test4",
"discovery": "recursive"
}
]
},
"nested_shares": {
"samba": [],
"nfs": []
},
"is_ready": true
}
Response Fields
Field |
Description |
|---|---|
|
API endpoint for the specific space. |
|
Space ID. |
|
Universally unique identifier for the space. |
|
Display name of the space. |
|
Filesystem path to the space. |
|
List of site objects where this space exists. |
└─ |
Site metadata. |
└─ |
Pool name and disk usage in bytes ( |
|
Timestamp of creation (ISO 8601 format). |
|
Total size allocated for the space. |
|
Snapshot configuration and associated space ID. |
└─ |
Snapshot timing and duration settings. |
|
Dictionary of site names with current sync status. |
└─ |
Booleans showing sync and availability. |
|
|
|
Whether the space settings can be changed. |
|
RGB color code used for UI display (e.g., |
|
Permissions mode (can be |
|
Nested relationships with other objects. |
└─ |
Empty lists or linked share/policy objects. |
└─ |
Discovery or snapshot schedules attached. |
|
Samba and NFS shares created within this space, including shares from any spaces nested under it. For example, a top-level space like |
|
|
1.4.6.4. DELETE /spaces/{id}/¶
Description
Deletes a specific Space identified by its ID. This permanently removes the space from the system.
Request Parameters
Name |
Description |
Type |
Required |
Location |
|---|---|---|---|---|
|
The unique identifier of the Space to delete |
string |
Yes |
Path |
Example Request
curl -X 'DELETE' \
'http://your-hub-address:8000/api/spaces/2/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 204 No Content
No response body is returned. The 204 status confirms successful deletion.
1.4.6.5. GET /spaces/{id}/files/¶
Description
Retrieves the file or directory structure inside a specific space, identified by its ID. This includes metadata such as file size, type, path, access times, and status across different sites. Useful for browsing contents within the space mount point.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
ID of the space to browse. |
|
string |
Yes |
Path within the space to retrieve files from. Must start with |
|
string |
No |
Specific site to target. If omitted, checks all available sites. |
|
boolean |
No |
Whether to retrieve all details of child files. Default: |
|
boolean |
No |
Whether to include restricted objects. Default: |
|
boolean |
No |
Whether to only check available sites. Default: |
|
boolean |
No |
Whether to raise an exception if a timeout occurs. Default: |
|
integer |
No |
Custom DB cache invalidation time in seconds. |
|
integer |
No |
Custom timeout period for the operation in seconds. |
|
string |
No |
Filter by item type (e.g., |
|
integer |
No |
Page number for pagination. |
|
integer |
No |
Number of results per page. Can be |
Example Request
curl -X 'GET' \
'http://10.201.2.224:8000/api/spaces/1/files/?path=%2Fmmfs1%2Fdata&details=false&restricted=false&check_available_sites=true&raise_exception=true' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
[
{
"url": "http://your-hub-address:8000/api/file/?path=%2Fmmfs1%2Fdata&site=qatest-pdevan-testplugin-siteB",
"children": {
"count": 2,
"results": [
{
"site": "siteB",
"path": "/mmfs1/data/sample_data",
"name": "sample_data",
"type": "directory",
"size": 0,
"status": "online"
},
{
"site": "siteB",
"path": "/mmfs1/data/sample_data.tgz",
"name": "sample_data.tgz",
"type": "file",
"size": 0,
"status": "online"
}
]
},
"site": "siteB",
"path": "/mmfs1/data",
"name": "data",
"type": "directory",
"size": 512,
"status": "online"
},
{
"url": "http://your-hub-address:8000/api/file/?path=%2Fmmfs1%2Fdata&site=siteA",
"children": {
"count": 5,
"results": [
{
"site": "siteA",
"path": "/mmfs1/data/API_Example",
"name": "API_Example",
"type": "directory",
"size": 0,
"status": "online"
},
{
"site": "siteA",
"path": "/mmfs1/data/sample_data.tgz",
"name": "sample_data.tgz",
"type": "file",
"size": 36375247,
"status": "online",
"disk_usage": 184025088,
"total_files": 94,
"data_size": 178229989
}
]
},
"site": "siteA",
"path": "/mmfs1/data",
"name": "data",
"type": "directory",
"size": 512,
"status": "online"
}
]
Response Fields
Field |
Type |
Description |
|---|---|---|
|
string |
Link to file/directory API for this site. |
|
object |
Contains count, pagination, and results for sub-items. |
|
string |
Site this structure refers to. |
|
string |
Full path to the current folder. |
|
string |
Folder name. |
|
string |
Either |
|
integer |
Size in bytes. |
|
string |
Status of the object, e.g., |
|
datetime |
Creation, modification, and access timestamps (nullable). |
|
integer |
Disk usage in bytes (optional; present for files/directories). |
|
integer |
Total number of files under the directory (if available). |
|
integer |
Actual data size in bytes. |
|
boolean |
Whether it’s deleted (soft-deleted). |
1.4.7. Buckets¶
1.4.7.1. GET /api/buckets/¶
Description
This API endpoint retrieves a list of storage buckets configured in the system. Buckets represent logical containers for storing data, such as files or backups, often linked to cloud storage services like Amazon S3.
You can paginate through the results using page and page_size parameters.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
|
integer |
No |
Page number of the result set. Defaults to 1 if not specified. |
|
integer |
No |
Number of results to return per page. Must be between 20 and 100. Use 0 to return all results without pagination. Defaults to 20 if not specified or below the minimum. |
Example Request
curl -X GET \
'http://your-hub-address:8000/api/buckets/?page=1&page_size=1' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key <your-api-key>'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"access_key_id": "********************",
"secret_access_key": "********************",
"access_key": "",
"credentials_json": {},
"external_targets": [],
"name": "buckettest",
"label": "BT 1",
"storage_type": "AmazonS3",
"container": "",
"storage_account": "",
"credentials_file": null,
"region": "London",
"endpoint": "s3.amazonaws.com",
"port": 443,
"scheme": "https",
"migration_target_folder": "",
"ssl_verify": true,
"soft_deleting": false,
"advanced_settings": {}
}
]
}
Response Fields
Field |
Type |
Description |
|---|---|---|
|
integer |
Unique identifier for the bucket. |
|
string (masked) |
The access key ID used to authenticate with the storage service (masked for security). |
|
string (masked) |
The secret access key for authentication (masked for security). |
|
string |
Azure-specific access key information, if applicable. Used in place of |
|
object |
JSON object with detailed credential info. |
|
array |
List of external targets linked to this bucket. |
|
string |
Name of the bucket. |
|
string |
User-friendly label or alias for the bucket. |
|
string |
Type of storage service (e.g., |
|
string |
Container name or identifier (if applicable). |
|
string |
Storage account identifier (if applicable). |
|
string / null |
Path to credentials file, if used. |
|
string |
Geographical region of the storage bucket (e.g., |
|
string |
URL endpoint for the storage service (e.g., |
|
integer |
Network port used to connect (typically |
|
string |
Protocol scheme, usually |
|
string |
Folder path for migration targets, if applicable. |
|
boolean |
Whether SSL certificate verification is enabled. |
|
object |
Additional advanced settings specific to the bucket. |
1.4.7.2. POST /api/buckets/¶
Description
This API endpoint creates a new storage bucket configuration. Buckets represent storage containers in cloud services like Amazon S3, and this endpoint lets you add new ones by providing the necessary connection and authentication details.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
name |
string |
Yes |
Name of the bucket. Must contain only lowercase letters, numbers, periods (.) and dashes (-). |
label |
string |
No |
User-friendly label or alias for the bucket. |
storage_type |
string |
Yes |
Type of storage service (e.g., “AmazonS3”). |
container |
string |
No |
Container name or identifier, if applicable. |
access_key_id |
string |
Yes |
Access key ID used for authenticating with the storage service. |
secret_access_key |
string |
Yes |
Secret key paired with the access key ID for authentication. |
access_key |
string |
No |
Additional access key info, if any. |
storage_account |
string |
No |
Storage account identifier, if applicable. |
credentials_json |
object |
No |
JSON object containing detailed credential information. |
credentials_file |
string |
No |
Path to a credentials file, if used. |
region |
string |
No |
Geographical region of the bucket (e.g., “us-west-1”). |
endpoint |
string |
No |
URL endpoint for the storage service (e.g., “s3.amazonaws.com”). |
port |
integer |
No |
Network port for connecting (default usually 443 for HTTPS). |
scheme |
string |
No |
Protocol scheme, usually “https”. |
migration_target_folder |
string |
No |
Folder path for migration targets, if applicable. |
ssl_verify |
boolean |
No |
Whether SSL certificate verification is enabled (default: true). |
advanced_settings |
object |
No |
Additional advanced settings specific to the bucket. |
Example Request
curl -X POST \
'http://your-hub-address:8000/api/buckets/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key <your-api-key>' \
-H 'Content-Type: application/json' \
-d '{
"name": "bucket1",
"label": "test 2",
"storage_type": "AmazonS3",
"container": "string",
"access_key_id": "string",
"secret_access_key": "string",
"access_key": "string",
"storage_account": "string",
"credentials_json": {},
"credentials_file": "string",
"region": "string",
"endpoint": "string",
"port": 2147483647,
"scheme": "https",
"migration_target_folder": "string",
"ssl_verify": true,
"advanced_settings": {}
}'
Successful Response
HTTP Status Code: 201 CREATED
Content-Type: application/json
Example Response
{
"id": 2,
"access_key_id": "********************",
"secret_access_key": "********************",
"access_key": "********************",
"credentials_json": {},
"external_targets": [],
"name": "bucket1",
"label": "test 2",
"storage_type": "AmazonS3",
"container": "string",
"storage_account": "string",
"credentials_file": "string",
"region": "string",
"endpoint": "string",
"port": 2147483647,
"scheme": "https",
"migration_target_folder": "string",
"ssl_verify": true,
"soft_deleting": false,
"advanced_settings": {}
}
Response Fields
Please refer to the request parameters.
1.4.7.3. GET /buckets/{id}/¶
Description
To retrieve details of a specific bucket by its unique ID.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
id |
string |
Yes |
Unique identifier of the bucket. |
Example Request
curl -X GET \
'http://your-hub-address:8000/api/buckets/2/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key <your-api-key>'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"id": 2,
"access_key_id": "********************",
"secret_access_key": "********************",
"access_key": "********************",
"credentials_json": {},
"external_targets": [],
"name": "bucket1",
"label": "test 2",
"storage_type": "AmazonS3",
"container": "string",
"storage_account": "string",
"credentials_file": "string",
"region": "string",
"endpoint": "string",
"port": 2147483647,
"scheme": "https",
"migration_target_folder": "string",
"ssl_verify": true,
"soft_deleting": false,
"advanced_settings": {}
}
Response Fields
The fields returned in the response are explained at POST /api/buckets/. Please refer to those descriptions for more information about each field.
1.4.7.4. PATCH /buckets/{id}/¶
Description
Update details of an existing bucket by its unique ID.
Request Parameters
Name |
Description |
|---|---|
id (path) |
The unique identifier of the bucket to update. |
data (body) |
JSON object containing fields to update for the bucket. |
Example Request
curl -X 'PATCH' \
'http://your-hub-address:8000/api/buckets/2/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key <your-api-key>' \
-H 'Content-Type: application/json' \
-d '{
"name": "bucket2",
"label": "string",
"storage_type": "AmazonS3",
"container": "string",
"access_key_id": "string",
"secret_access_key": "string",
"access_key": "string",
"storage_account": "string",
"credentials_json": {},
"credentials_file": "string",
"region": "string",
"endpoint": "string",
"port": 2147483647,
"scheme": "https",
"migration_target_folder": "string",
"ssl_verify": true,
"advanced_settings": {}
}'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"id": 2,
"access_key_id": "********************",
"secret_access_key": "********************",
"access_key": "********************",
"credentials_json": {},
"external_targets": [],
"name": "bucket2",
"label": "string",
"storage_type": "AmazonS3",
"container": "string",
"storage_account": "string",
"credentials_file": "string",
"region": "string",
"endpoint": "string",
"port": 2147483647,
"scheme": "https",
"migration_target_folder": "string",
"ssl_verify": true,
"soft_deleting": false,
"advanced_settings": {}
}
Response Fields
The fields returned in the response are explained at POST /api/buckets/. Please refer to those descriptions for more information about each field.
1.4.7.5. DELETE /buckets/{id}/¶
Description
Deletes a specified bucket by ID. This operation also propagates the deletion settings to external targets across all sites where the bucket is available.
It is used for complete removal of the bucket from the NGENEA Hub as well as from any connected external storage systems, based on the system’s configured deletion policies.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
id |
string |
Yes |
The unique identifier of the bucket. |
Example Request
curl -X 'DELETE' \
'http://your-hub-address:8000/api/buckets/2/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key <api-key>'
Successful Response
HTTP Status Code: 204 No Content
Content-Type: application/json
No content is returned in the response body upon successful deletion.
Note
This operation is irreversible, once deleted, the bucket and its settings are removed from all locations.
Ensure that the bucket is not in use before calling this endpoint.
Deletion is subject to permission and may fail if the bucket is protected or referenced by other resources.
1.4.8. Storage Pools¶
A storage pool is a logical collection of physical storage resources, such as hard drives or SSDs, grouped together to simplify management and optimize the usage of available storage.
In systems like Pixstor (GPFS), storage pools allow administrators to treat multiple devices as a single unit, enabling better scalability, load balancing, and efficient data management. These pools are essential for organizing and managing file systems across distributed environments.
In Ngenea Hub, storage pool metadata, including capacity and health status, is regularly refreshed to ensure accurate tracking and monitoring. By using storage pools, administrators can easily manage space, track storage utilization, and ensure system performance remains optimal.
1.4.8.1. GET /storagepools/¶
Description
The GET /storagepools/ API retrieves a list of storage pools within the Ngenea Hub system, showing details like the pool’s capacity, usage, and the site it belongs to.
Request Parameters
Name |
Type |
Required |
Description |
|---|---|---|---|
|
integer |
No |
Page number of the result set. Defaults to 1 if not specified. |
|
integer |
No |
Number of results to return per page. Must be between 20 and 100. Use 0 to return all results without pagination. Defaults to 20 if not specified or below the minimum. |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/storagepools/?page=1' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"name": "sas1",
"filesystem": "mmfs1",
"site": 1,
"capacity": 89120571392,
"used_space": 3070230528,
"free_space": 86050340864,
"is_default": true
},
{
"name": "sas1",
"filesystem": "mmfs1",
"site": 2,
"capacity": 89120571392,
"used_space": 2944401408,
"free_space": 86176169984,
"is_default": true
}
]
}
Response Fields
Field |
Description |
Example |
|---|---|---|
count |
The total number of storage pools available. |
2 |
next |
The URL for the next page of results, if available. |
null |
previous |
The URL for the previous page of results, if available. |
null |
results |
An array containing details about each storage pool. |
Each entry in results contains the following fields:
Field |
Description |
Example |
|---|---|---|
name |
The name of the storage pool. |
“sas1” |
filesystem |
The file system associated with the pool. |
“mmfs1” |
site |
The site ID where the storage pool is located. |
1 |
capacity |
The total capacity of the storage pool in bytes. |
89120571392 |
used_space |
The amount of space currently used in the pool (in bytes). |
3070230528 |
free_space |
The remaining space available in the pool (in bytes). |
86050340864 |
is_default |
A boolean indicating if this is the default storage pool. |
true |
1.4.8.2. GET /storagepools/{id}/¶
Description
This endpoint is used to retrieve detailed information about a specific storage pool identified by the ‘ID’ parameter. This is a more focused API call compared to the previous one, as it allows you to get data for a particular storage pool rather than a list of all storage pools.
Request Parameters
Field |
Description |
Example |
|---|---|---|
id |
The unique identifier (ID) for the specific storage pool to retrieve. |
2 |
Example Request
curl -X 'GET' \
'http://your-hub-address:8000/api/storagepools/2/' \
-H 'accept: application/json' \
-H 'Authorization: Api-Key your-api-key'
Successful Response
HTTP Status Code: 200 OK
Content-Type: application/json
Example Response
{
"name": "sas1",
"filesystem": "mmfs1",
"site": 2,
"capacity": 89120571392,
"used_space": 2961178624,
"free_space": 86159392768,
"is_default": true
}
Response Fields
Please refer to the response fields under GET/storagepools/.
Note
In the example response:
The storage pool is named “sas1” and uses the “mmfs1” filesystem.
It is located at site 2.
The total capacity of the pool is approximately 89 GB, with around 3 GB used and 86 GB remaining.
The pool is marked as the default pool (true).