Skip to content

Commit

Permalink
ES-2402: Use generated models in rest client (#6225)
Browse files Browse the repository at this point in the history
- Remove all importMappings to the existing and custom DTOs and use only generated models instead
- Remove `jsr310` dependency - generated models do not deal with `Instant` type
- Remove Gradle dependencies on inner projects
  • Loading branch information
anton-subbotin authored Jun 25, 2024
1 parent 84795d3 commit 3fb6c98
Show file tree
Hide file tree
Showing 29 changed files with 90 additions and 242 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package net.corda.sdk.bootstrap.rbac

import net.corda.libs.permissions.endpoints.v1.permission.types.BulkCreatePermissionsRequestType
import net.corda.libs.permissions.endpoints.v1.permission.types.CreatePermissionType
import net.corda.libs.permissions.endpoints.v1.permission.types.PermissionType
import net.corda.libs.permissions.endpoints.v1.role.types.CreateRoleType
import net.corda.libs.permissions.endpoints.v1.role.types.RoleResponseType
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.BulkCreatePermissionsRequestType
import net.corda.restclient.generated.models.CreatePermissionType
import net.corda.restclient.generated.models.CreateRoleType
import net.corda.restclient.generated.models.RoleResponseType
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import org.slf4j.Logger
import org.slf4j.LoggerFactory
Expand Down Expand Up @@ -60,8 +59,8 @@ class RoleAndPermissionsCreator(val restClient: CordaRestClient) {
val bulkRequest = BulkCreatePermissionsRequestType(
permissionsToCreate.map { entry ->
CreatePermissionType(
PermissionType.ALLOW,
entry.permissionString,
CreatePermissionType.PermissionType.ALLOW,
roleToCreate.groupVisibility,
entry.vnodeShortHash
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package net.corda.sdk.config

import net.corda.libs.configuration.endpoints.v1.types.GetConfigResponse
import net.corda.libs.configuration.endpoints.v1.types.UpdateConfigResponse
import net.corda.libs.configuration.exception.WrongConfigVersionException
import net.corda.rest.ResponseCode
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.infrastructure.ClientError
import net.corda.restclient.generated.infrastructure.Success
import net.corda.restclient.generated.models.GetConfigResponse
import net.corda.restclient.generated.models.UpdateConfigParameters
import net.corda.restclient.generated.models.UpdateConfigResponse
import net.corda.schema.configuration.ConfigKeys.RootConfigKey
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import kotlin.time.Duration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package net.corda.sdk.network
import net.corda.crypto.core.ShortHash
import net.corda.data.certificates.CertificateUsage
import net.corda.membership.certificates.CertificateUsageUtils.publicName
import net.corda.membership.rest.v1.types.response.KeyPairIdentifier
import net.corda.restclient.CordaRestClient
import net.corda.restclient.dto.GenerateCsrWrapperRequest
import net.corda.restclient.generated.models.GenerateCsrWrapperRequest
import net.corda.restclient.generated.models.KeyPairIdentifier
import net.corda.sdk.network.Keys.Companion.P2P_TLS_CERTIFICATE_ALIAS
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import net.corda.v5.base.types.MemberX500Name
Expand Down Expand Up @@ -83,13 +83,9 @@ class ClientCertificates(val restClient: CordaRestClient) {
val requestBody = GenerateCsrWrapperRequest(
x500Name = subjectX500Name.toString(),
contextMap = null,
subjectAlternativeNames = p2pHostNames.map { it.toString() }
)
val csr = restClient.certificatesClient.postCertificateTenantidKeyid(
tenantid = "p2p",
keyid = tlsKey.id,
netCordaRestclientDtoGenerateCsrWrapperRequest = requestBody
subjectAlternativeNames = p2pHostNames.toList()
)
val csr = restClient.certificatesClient.postCertificateTenantidKeyid("p2p", tlsKey.id, requestBody)
return csr.reader().use { reader ->
PEMParser(reader).use { parser ->
parser.readObject()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package net.corda.sdk.network

import net.corda.crypto.core.ShortHash
import net.corda.membership.rest.v1.types.RestGroupParameters
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.RestGroupParameters
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package net.corda.sdk.network

import net.corda.crypto.core.CryptoConsts.Categories.KeyCategory
import net.corda.crypto.core.ShortHash
import net.corda.membership.rest.v1.types.response.KeyPairIdentifier
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.KeyPairIdentifier
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import net.corda.v5.crypto.KeySchemeCodes.ECDSA_SECP256R1_CODE_NAME
import kotlin.time.Duration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package net.corda.sdk.network

import net.corda.crypto.core.ShortHash
import net.corda.membership.rest.v1.types.response.RestMemberInfoList
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.RestMemberInfoList
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package net.corda.sdk.network

import net.corda.crypto.core.ShortHash
import net.corda.membership.rest.v1.types.request.PreAuthTokenRequest
import net.corda.membership.rest.v1.types.response.PreAuthToken
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.PreAuthToken
import net.corda.restclient.generated.models.PreAuthTokenRequest

class MgmGeneratePreAuth(val restClient: CordaRestClient) {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package net.corda.sdk.network

import net.corda.membership.lib.MemberInfoExtension
import net.corda.membership.rest.v1.types.request.MemberRegistrationRequest
import net.corda.membership.rest.v1.types.response.KeyPairIdentifier
import net.corda.restclient.generated.models.KeyPairIdentifier
import net.corda.restclient.generated.models.MemberRegistrationRequest
import net.corda.v5.crypto.KeySchemeCodes.ECDSA_SECP256R1_CODE_NAME

class RegistrationRequest {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package net.corda.sdk.network

import net.corda.crypto.core.ShortHash
import net.corda.membership.rest.v1.types.request.HostedIdentitySetupRequest
import net.corda.membership.rest.v1.types.request.MemberRegistrationRequest
import net.corda.membership.rest.v1.types.response.RegistrationRequestProgress
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.HostedIdentitySetupRequest
import net.corda.restclient.generated.models.MemberRegistrationRequest
import net.corda.restclient.generated.models.RegistrationRequestProgress
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package net.corda.sdk.network

import net.corda.crypto.core.ShortHash
import net.corda.membership.rest.v1.types.request.MemberRegistrationRequest
import net.corda.membership.rest.v1.types.response.RegistrationStatus
import net.corda.membership.rest.v1.types.response.RestRegistrationRequestStatus
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.MemberRegistrationRequest
import net.corda.restclient.generated.models.RestRegistrationRequestStatus
import net.corda.restclient.generated.models.RestRegistrationRequestStatus.RegistrationStatus
import net.corda.sdk.data.RequestId
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import kotlin.time.Duration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package net.corda.sdk.network

import net.corda.crypto.core.ShortHash
import net.corda.libs.virtualnode.endpoints.v1.types.CreateVirtualNodeRequestType.JsonCreateVirtualNodeRequest
import net.corda.libs.virtualnode.endpoints.v1.types.VirtualNodes
import net.corda.rest.asynchronous.v1.AsyncResponse
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.AsyncResponse
import net.corda.restclient.generated.models.JsonCreateVirtualNodeRequest
import net.corda.restclient.generated.models.VirtualNodeInfo
import net.corda.restclient.generated.models.VirtualNodes
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
import net.corda.v5.base.types.MemberX500Name
import net.corda.virtualnode.OperationalStatus
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds

Expand Down Expand Up @@ -38,7 +38,7 @@ class VirtualNode(val restClient: CordaRestClient) {
operationName = "Wait for Virtual Node $holdingId to be active"
) {
val response = restClient.virtualNodeClient.getVirtualnodeHoldingidentityshorthash(holdingId.value)
response.flowP2pOperationalStatus == OperationalStatus.ACTIVE
response.flowP2pOperationalStatus == VirtualNodeInfo.FlowP2pOperationalStatus.ACTIVE
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package net.corda.sdk.packaging

import net.corda.libs.cpiupload.endpoints.v1.CpiUploadRestResource
import net.corda.libs.cpiupload.endpoints.v1.GetCPIsResponse
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.models.CpiUploadResponse
import net.corda.restclient.generated.models.GetCPIsResponse
import net.corda.sdk.data.Checksum
import net.corda.sdk.data.RequestId
import net.corda.sdk.rest.RestClientUtils.executeWithRetry
Expand All @@ -19,7 +19,7 @@ class CpiUploader(val restClient: CordaRestClient) {
*/
fun uploadCPI(
cpi: File,
): CpiUploadRestResource.CpiUploadResponse {
): CpiUploadResponse {
return restClient.cpiClient.postCpi(cpi)
}

Expand All @@ -36,7 +36,7 @@ class CpiUploader(val restClient: CordaRestClient) {
cpiName: String,
cpiVersion: String,
wait: Duration = 30.seconds
): CpiUploadRestResource.CpiUploadResponse {
): CpiUploadResponse {
return if (
cpiPreviouslyUploaded(
cpiName = cpiName,
Expand Down Expand Up @@ -99,7 +99,7 @@ class CpiUploader(val restClient: CordaRestClient) {
*/
fun forceCpiUpload(
cpiFile: File
): CpiUploadRestResource.CpiUploadResponse {
): CpiUploadResponse {
return restClient.virtualNodeMaintenanceClient.postMaintenanceVirtualnodeForcecpiupload(cpiFile)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package net.corda.sdk.packaging

import net.corda.libs.cpiupload.endpoints.v1.CpiIdentifier
import net.corda.libs.cpiupload.endpoints.v1.CpiMetadata
import net.corda.libs.cpiupload.endpoints.v1.GetCPIsResponse
import net.corda.restclient.CordaRestClient
import net.corda.restclient.generated.apis.CPIApi
import net.corda.restclient.generated.models.CpiIdentifier
import net.corda.restclient.generated.models.CpiMetadata
import net.corda.restclient.generated.models.GetCPIsResponse
import net.corda.sdk.data.Checksum
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
Expand All @@ -29,7 +29,7 @@ class CpiUploaderTest {
cpiFileFullChecksum = "",
cpks = emptyList(),
groupPolicy = "",
timestamp = Instant.now()
timestamp = Instant.now().toString()
)
)
)
Expand Down Expand Up @@ -71,7 +71,7 @@ class CpiUploaderTest {
cpiFileFullChecksum = "",
cpks = emptyList(),
groupPolicy = "",
timestamp = Instant.now()
timestamp = Instant.now().toString()
)
)
)
Expand Down Expand Up @@ -99,7 +99,7 @@ class CpiUploaderTest {
cpiFileFullChecksum = "",
cpks = emptyList(),
groupPolicy = "",
timestamp = Instant.now()
timestamp = Instant.now().toString()
)
)
)
Expand All @@ -126,7 +126,7 @@ class CpiUploaderTest {
cpiFileFullChecksum = "",
cpks = emptyList(),
groupPolicy = "",
timestamp = Instant.now()
timestamp = Instant.now().toString()
)
)
)
Expand Down
5 changes: 0 additions & 5 deletions libs/rest/generated-rest-client/.openapi-generator-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,3 @@
**/gradlew.bat
**/README.md
**/settings.gradle

**/FlowResultResponseJson.kt
**/KeyRotationStatusResponseRotatedKeyStatusInner.kt
**/net.corda*.kt
**/StartFlowParametersRequestBody.kt
4 changes: 0 additions & 4 deletions libs/rest/generated-rest-client/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,3 @@ The `applyWorkarounds` task should have taken care of this, but may have become
The CertificateApi has a known limitation where we are unable to send a list of files.
The spec allows for a list of files to be sent, and you can achieve this via Swagger and cURL, but the generated client does not support this.
The workaround is to send the files one at a time. If you provide a list of files, only the first file will be sent.

## DTO

There are a small number of data classes which don't already exist in the codebase, but are listed in the spec. We will need to maintain those.
Loading

0 comments on commit 3fb6c98

Please sign in to comment.