From c8c9c490d4406b551d094b7eca571f7729138027 Mon Sep 17 00:00:00 2001 From: Denis Date: Tue, 2 May 2023 15:54:57 -0500 Subject: [PATCH] US49481-Included handling of optional VNI and VID for network creation (#82) * US49481-Included handling of optional VNI and VID for network creation * [auto generated] Checking in generated offline HTML doc * US49481-Fixed lint * US49481-Implemented review comments * [auto generated] Checking in generated offline HTML doc * US49481-Implemented review comments * [auto generated] Checking in generated offline HTML doc --------- Co-authored-by: dbozzato81 --- .../components/schemas/LocationInfo.yaml | 8 ++++ .../components/schemas/NewNetwork.yaml | 6 +++ v1/html/index.html | 12 +++-- v1/pkg/client/api/openapi.yaml | 46 +++++++++++++++++++ v1/pkg/client/docs/LocationInfo.md | 2 + v1/pkg/client/docs/NewNetwork.md | 2 + v1/pkg/client/model_location_info.go | 4 ++ v1/pkg/client/model_new_network.go | 4 ++ 8 files changed, 79 insertions(+), 5 deletions(-) diff --git a/v1/api/swagger/components/schemas/LocationInfo.yaml b/v1/api/swagger/components/schemas/LocationInfo.yaml index bfd9d5d9..aab42a03 100644 --- a/v1/api/swagger/components/schemas/LocationInfo.yaml +++ b/v1/api/swagger/components/schemas/LocationInfo.yaml @@ -7,6 +7,8 @@ required: - Country - Region - DataCenter + - PrivateNetworkVIDSupport + - PrivateNetworkVNISupport properties: ID: type: string @@ -22,3 +24,9 @@ properties: type: string example: FTC1 description: Data center descriptor + PrivateNetworkVIDSupport: + type: boolean + description: Indicates whether or not the fabric dedicated for private networks supports VLAN ID. + PrivateNetworkVNISupport: + type: boolean + description: Indicates whether or not the fabric dedicated for private networks supports VNI ID. diff --git a/v1/api/swagger/components/schemas/NewNetwork.yaml b/v1/api/swagger/components/schemas/NewNetwork.yaml index 9a679f78..ed21a57f 100644 --- a/v1/api/swagger/components/schemas/NewNetwork.yaml +++ b/v1/api/swagger/components/schemas/NewNetwork.yaml @@ -23,3 +23,9 @@ properties: If not specified, the network uses the default IP pool allocated from the hoster/project IP Pool factory and if specified, a new custom IP Pool will be created and used for IP allocations. + VLAN: + type: integer + description: Optional VLAN ID of the network. If not specified, it is allocated from reserved pool. + VNI: + type: integer + description: Optional VNI ID of the network. If not specified, it is allocated from reserved pool if required. diff --git a/v1/html/index.html b/v1/html/index.html index e86a0492..b28fe6b3 100644 --- a/v1/html/index.html +++ b/v1/html/index.html @@ -2712,13 +2712,15 @@

Option 2: Getting the token directly from UI

LocationID
required
string <uuid> (LocationID)

The location ID is the data center location of the resource. The LocationID must be one of those provided by the LocationInfo array returned as part of the get /available-resources call. The locations are typically described by country, region, and data center.

Description
string
HostUse
string (NetworkHostUse)
Enum: "Required" "Default" "Optional"

Indicates whether use of the network is required, default, or optional. If the network is required, any new create host request for that location must include this network among the requested networks. Default and Optional are both optional networks, but imply whether they should show up initially in pre-populated fields in a graphical user interface.

Purpose
string (NetworkPurpose)
Enum: "Backup" "Storage" "vmKernel" "vmNSX-T" "vMotion" "vCHA" "vmFT" "iSCSI-A" "iSCSI-B" "Telemetry" "External"

Indicates the purpose of the network.

-
object or null (NewIPPool)

Responses

object or null (NewIPPool)
VLAN
integer

Optional VLAN ID of the network. If not specified, it is allocated from reserved pool.

+
VNI
integer

Optional VNI ID of the network. If not specified, it is allocated from reserved pool if required.

+

Responses

Request samples

Content type
application/json
{
  • "Name": "Private2",
  • "LocationID": "58e992d9-6663-492c-8c5b-ecf0b1b3bfe1",
  • "Description": "Private network for intra-cluster communication",
  • "HostUse": "Default",
  • "Purpose": "Storage",
  • "NewIPPool": {
    }
}

Response samples

Content type
application/json
{
  • "ID": "3892eb50-4697-4c72-aadc-32b766bce3c0",
  • "ETag": "a8a0a8d9-d35b-45c6-840f-2b3694efc394",
  • "Name": "My Object Name",
  • "Created": "2019-06-27T22:59:01.661Z",
  • "Modified": "2020-02-27T18:28:02.863Z",
  • "LocationID": "58e992d9-6663-492c-8c5b-ecf0b1b3bfe1",
  • "Description": "Private network for intra-cluster communication",
  • "HostUse": "Default",
  • "Purpose": "Storage",
  • "IPPoolID": "string",
  • "VLAN": 0,
  • "VNI": 0
}

Retrieve network by ID

Returns a single network with matching ID

+
https://client.greenlake.hpe.com{basePath}/networks

Request samples

Content type
application/json
{
  • "Name": "Private2",
  • "LocationID": "58e992d9-6663-492c-8c5b-ecf0b1b3bfe1",
  • "Description": "Private network for intra-cluster communication",
  • "HostUse": "Default",
  • "Purpose": "Storage",
  • "NewIPPool": {
    },
  • "VLAN": 0,
  • "VNI": 0
}

Response samples

Content type
application/json
{
  • "ID": "3892eb50-4697-4c72-aadc-32b766bce3c0",
  • "ETag": "a8a0a8d9-d35b-45c6-840f-2b3694efc394",
  • "Name": "My Object Name",
  • "Created": "2019-06-27T22:59:01.661Z",
  • "Modified": "2020-02-27T18:28:02.863Z",
  • "LocationID": "58e992d9-6663-492c-8c5b-ecf0b1b3bfe1",
  • "Description": "Private network for intra-cluster communication",
  • "HostUse": "Default",
  • "Purpose": "Storage",
  • "IPPoolID": "string",
  • "VLAN": 0,
  • "VNI": 0
}

Retrieve network by ID

Returns a single network with matching ID

Authorizations:
(BearerAuthProject) (BearerAuthMembership)
path Parameters
networkId
required
string

ID of network to return

Responses

Response samples

Content type
application/json
{
  • "Images": [
    ],
  • "Locations": [
    ],
  • "Networks": [
    ],
  • "MachineSizes": [
    ],
  • "VolumeFlavors": [
    ],
  • "Volumes": [
    ],
  • "MachineInventory": [
    ],
  • "StorageInventory": [
    ],
  • "SSHKeys": [
    ]
}

usage-reports

Operations related to retrieving information about resource usage within the project.

+
https://client.greenlake.hpe.com{basePath}/available-resources

Response samples

Content type
application/json
{
  • "Images": [
    ],
  • "Locations": [
    ],
  • "Networks": [
    ],
  • "MachineSizes": [
    ],
  • "VolumeFlavors": [
    ],
  • "Volumes": [
    ],
  • "MachineInventory": [
    ],
  • "StorageInventory": [
    ],
  • "SSHKeys": [
    ]
}

usage-reports

Operations related to retrieving information about resource usage within the project.

Get a usage report

Creates and returns a usage report based on the parameters passed in the request body

Authorizations:
(BearerAuthProject) (BearerAuthMembership)
query Parameters
start
required
string

Start of the billing period

end
string

End of the billing period, default to now if omitted

@@ -2805,7 +2807,7 @@

Option 2: Getting the token directly from UI

Response samples

Content type
application/json
{
  • "Projects": [
    ],
  • "MachineSizes": [
    ],
  • "VolumeFlavors": [
    ],
  • "Summary": {
    }
}

ippools

Operations related to IP pools.

+
https://client.greenlake.hpe.com{basePath}/projects-info

Response samples

Content type
application/json
{
  • "Projects": [
    ],
  • "MachineSizes": [
    ],
  • "VolumeFlavors": [
    ],
  • "Summary": {
    }
}

ippools

Operations related to IP pools.

List all ip pools in project

Returns an array of all ip pool objects defined within the project.

Authorizations:
(BearerAuthProject) (BearerAuthMembership)

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "details": "string"
}