Gateway Share

List NFS Shares

Lists all NFS shares.

GET /api/v1/gateway_shares/?protocol=nfs
Query Parameters:
 
  • cluster -- Filter by cluster.
  • protocol -- Filter by protocol (nfs or cifs).
  • name -- Filter by share name.
  • enabled -- Filter by state.
Status:

200 OK

Status:

400 Bad Request

Status:

404 Not Found

Example request:

curl -1 https://platform.swiftstack.com/api/v1/gateway_shares/?protocol=nfs -H 'Authorization: apikey <user>:<api_key>'

Example response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
    "meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 2},
    "objects": [
        {
            "access_mode": "rw",
            "enabled": true,
            "id": 14,
            "name": "projects",
            "node": "/api/v1/nodes/20/",
            "protocol": "nfs",
            "resource_uri": "/api/v1/gateway_shares/14/",
            "root_squash": true,
            "secure": true,
            "swift_container": "projects",
            "upload_delay": 10,
            "write_retain": true,
            "no_apple_doubles": true,
            "clients_allowed_list": "",
        },
        {
            "access_mode": "ro",
            "enabled": false,
            "id": 15,
            "name": "forms",
            "node": "/api/v1/nodes/20/",
            "protocol": "nfs",
            "resource_uri": "/api/v1/gateway_shares/15/",
            "root_squash": false,
            "secure": false,
            "swift_container": "forms",
            "upload_delay": 0,
            "write_retain": true,
            "no_apple_doubles": true,
            "clients_allowed_list": "",
        }
    ]
}

List CIFS Shares

Lists all CIFS shares.

GET /api/v1/gateway_shares/?protocol=cifs
Query Parameters:
 
  • cluster -- Filter by cluster.
  • protocol -- Filter by protocol (nfs or cifs).
  • name -- Filter by share name.
  • enabled -- Filter by state.
Status:

200 OK

Status:

400 Bad Request

Status:

404 Not Found

Example request:

curl -1 https://platform.swiftstack.com/api/v1/gateway_shares/?protocol=cifs -H 'Authorization: apikey <user>:<api_key>'

Example response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
    "meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 2},
    "objects": [
        {
            "access_mode": "rw",
            "cifs_browseable": true,
            "cifs_create_mask": "0664",
            "cifs_directory_mask": "0775",
            "cifs_guest_ok": true,
            "cifs_valid_users": "",
            "cifs_valid_groups": "",
            "enabled": true,
            "id": 18,
            "name": "1403566832.535749",
            "node": "/api/v1/nodes/22/",
            "protocol": "cifs",
            "resource_uri": "/api/v1/gateway_shares/18/",
            "swift_container": "1403566832.535749",
            "upload_delay": 0,
            "write_retain": true,
            "no_apple_doubles": true,
            "clients_allowed_list": "",
        },
        {
            "access_mode": "ro",
            "cifs_browseable": true,
            "cifs_create_mask": "0664",
            "cifs_directory_mask": "0775",
            "cifs_guest_ok": true,
            "cifs_valid_users": "",
            "cifs_valid_groups": "",
            "enabled": true,
            "id": 19,
            "name": "forms",
            "node": "/api/v1/nodes/22/",
            "protocol": "cifs",
            "resource_uri": "/api/v1/gateway_shares/19/",
            "swift_container": "forms",
            "upload_delay": 0,
            "write_retain": true,
            "no_apple_doubles": true,
            "clients_allowed_list": "",
        }
    ]
}

Create NFS Share

Settings which do not match the current protocol will be ignored.

POST /api/v1/gateway_shares/
Form Parameters:
 
  • name -- share name (required)
  • node -- The API uri of the gateway node to which the share should be added (required)
  • swift_container -- Name of swift container to map to (required)
  • protocol -- nfs (default) or cifs
  • access_mode -- rw (default) or ro
  • enabled -- True or False (default)
  • root_squash -- True or False (default)
  • secure -- True or False (default)
  • upload_delay -- Delay in seconds before writing file to swift (default 0)
  • write_retain -- True (default) or False
  • no_apple_doubles -- True (default) or False
  • clients_allowed_list -- IPv4 address or subnet, domain name or suffix, @<netgroup name>
Status:

201 Created

Status:

400 Bad Request

Status:

404 Not Found

Example request:

curl -1 https://platform.swiftstack.com/api/v1/gateway_shares/?format=json -H 'Authorization: apikey <user>:<api_key>' -H 'content-type: application/json' -d '{"node": "/api/v1/nodes/<node_id>/", "name": "projects", "protocol": "nfs", "swift_container": "projects"}' -X POST

Example response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
    "access_mode": "ro",
    "enabled": false,
    "id": 15,
    "name": "forms",
    "node": "/api/v1/nodes/20/",
    "protocol": "nfs",
    "resource_uri": "/api/v1/gateway_shares/15/",
    "root_squash": false,
    "secure": false,
    "swift_container": "forms",
    "upload_delay": 0,
    "write_retain": true,
    "no_apple_doubles": true,
    "clients_allowed_list": ""
}

Create CIFS Share

Settings which do not match the current protocol will be ignored.

POST /api/v1/gateway_shares/
Form Parameters:
 
  • name -- share name (required)
  • node -- The API uri of the gateway node to which the share should be added (required)
  • swift_container -- Name of swift container to map to (required)
  • protocol -- nfs (default) or cifs
  • access_mode -- rw (default) or ro
  • enabled -- True or False (default)
  • cifs_create_mask -- mode for files (default 0664)
  • cifs_directory_mask -- mode for directories (default 0775)
  • cifs_guest_ok -- True (default) or False
  • cifs_valid_users -- list of allowed users
  • cifs_valid_groups -- list of allowed groups
  • cifs_browseable -- True (default) or False
  • upload_delay -- Delay in seconds before writing file to swift (default 0)
  • write_retain -- True (default) or False
  • no_apple_doubles -- True (default) or False
  • clients_allowed_list -- IPv4 address or subnet, domain name or suffix, @<netgroup name>
Status:

201 Created

Status:

400 Bad Request

Status:

404 Not Found

Example request:

curl -1 https://platform.swiftstack.com/api/v1/gateway_shares/?format=json -H 'Authorization: apikey <user>:<api_key>' -H 'content-type: application/json' -d '{"node": "/api/v1/nodes/<node_id>/", "name": "forms", "protocol": "cifs", "swift_container": "forms"}' -X POST

Example response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
    "access_mode": "rw",
    "cifs_browseable": true,
    "cifs_create_mask": "0664",
    "cifs_directory_mask": "0775",
    "cifs_guest_ok": true,
    "cifs_valid_users": "",
    "cifs_valid_groups": "",
    "enabled": true,
    "id": 18,
    "name": "1403566832.535749",
    "node": "/api/v1/nodes/22/",
    "protocol": "cifs",
    "resource_uri": "/api/v1/gateway_shares/18/",
    "swift_container": "1403566832.535749",
    "upload_delay": 0,
    "write_retain": true,
    "no_apple_doubles": true,
    "clients_allowed_list": "",
}

View Share Details

Display information about a share.

GET /api/v1/gateway_shares/<share_id>/
Status:200 OK
Status:400 Bad Request
Status:404 Not Found

Example request:

curl -1 https://platform.swiftstack.com/api/v1/gateway_shares/<share_id>/ -H 'Authorization: apikey <user>:<api_key>'

Example response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
    "access_mode": "rw",
    "cifs_browseable": true,
    "cifs_create_mask": "0664",
    "cifs_directory_mask": "0775",
    "cifs_guest_ok": true,
    "cifs_valid_users": "",
    "cifs_valid_groups": "",
    "enabled": true,
    "id": 18,
    "name": "1403566832.535749",
    "node": "/api/v1/nodes/22/",
    "protocol": "cifs",
    "resource_uri": "/api/v1/gateway_shares/18/",
    "swift_container": "1403566832.535749",
    "upload_delay": 0,
    "write_retain": true,
    "no_apple_doubles": true,
    "clients_allowed_list": "",
}

Note

The GET response will not include the password.

Change Share Details

Change the settings for a share. Settings which do not match the current protocol will be ignored.

PATCH /api/v1/gateway_shares/<share_id>/
Form Parameters:
 
  • name -- share name (required)
  • node -- The API uri of the gateway node to which the share should be added (required)
  • swift_container -- Name of swift container to map to (required)
  • protocol -- nfs (default) or cifs
  • access_mode -- rw (default) or ro
  • enabled -- True or False (default)
  • cifs_create_mask -- mode for files (default 0664)
  • cifs_directory_mask -- mode for directories (default 0775)
  • cifs_guest_ok -- True (default) or False
  • cifs_valid_users -- list of allowed users
  • cifs_valid_groups -- list of allowed groups
  • cifs_browseable -- True (default) or False
  • cluster -- The API uri of the cluster the gateway node belongs to (optional)
  • root_squash -- True or False (default) (nfs only)
  • secure -- True or False (default) (nfs only)
  • upload_delay -- Delay in seconds before writing file to swift (default 0)
  • write_retain -- True (default) or False
  • no_apple_doubles -- True (default) or False
  • clients_allowed_list -- IPv4 address or subnet, domain name or suffix, @<netgroup name>
Status:

202 Accepted

Status:

400 Bad Request

Status:

404 Not Found

Example request:

curl -1 https://platform.swiftstack.com/api/v1/gateway_shares/<share_id>/?format=json -H 'Authorization: apikey <user>:<api_key>' -H 'content-type: application/json' -d '{"protocol": "cifs", "swift_container": "forms"}' -X PATCH

Example response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
    "access_mode": "ro",
    "enabled": false,
    "id": 15,
    "name": "forms",
    "node": "/api/v1/nodes/20/",
    "protocol": "nfs",
    "resource_uri": "/api/v1/gateway_shares/15/",
    "root_squash": false,
    "secure": false,
    "swift_container": "forms",
    "upload_delay": 0,
    "write_retain": true,
    "no_apple_doubles": true,
    "clients_allowed_list": "",
}

Note

The PATCH response will include the password from the request, if any was sent.

Delete Share

Deletes a share.

DELETE /api/v1/gateway_shares/<share_id>
Status:204 No Content
Status:400 Bad Request
Status:404 Not Found

Example request:

curl -1 https://platform.swiftstack.com/api/v1/gateway_shares/<share_id>/ -H 'Authorization: apikey <user>:<api_key>' -X DELETE