Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add registerExistingSSHKey feature #1016

Conversation

jihoon-seo
Copy link
Member

앞선

에서는
option=register 이면 Spider 에 Get 하고 그 결과를 이용하여 TB object를 생성했지만,

SSH Key는 Spider에 Get 해도 Spider가 Private key 등을 리턴하지 않기 때문에

사용자가 TB에 registerExistingSSHKey 할 때 모든 정보를 제공하도록 하였습니다.


[특이사항]

  • 사용자가 TB에 registerExistingSSHKey 할 때 SSH Key 정보를 제공할 수 있도록, TbSshKeyReq struct에 field 추가
    (사용자가 모든 필드를 채워야 하는 것은 아니며, 일부만 채워도 되지만,
    register 시 UsernamePrivateKey 는 필수 필드로 지정했음)
    • CspSshKeyName
    • Fingerprint
    • Username
    • VerifiedUsername
    • PublicKey
    • PrivateKey

기존의 "Create SSH Key"

[Request]

{ 
	"connectionName": "'${CONN_CONFIG[$INDEX,$REGION]}'", 
	"name": "'${CONN_CONFIG[$INDEX,$REGION]}'-'${POSTFIX}'", 
	"username": "ubuntu"
}

[Response]

{
  "id": "aws-ap-southeast-1-sjhtest",
  "name": "aws-ap-southeast-1-sjhtest",
  "connectionName": "aws-ap-southeast-1",
  "description": "",
  "cspSshKeyName": "ns01-aws-ap-southeast-1-sjhtest",
  "fingerprint": "xx:c4:5a:ea:7f:c4:db:d5:80:80:92:47:7e:43:c9:2c:01:d3:ee:xx",
  "username": "",
  "verifiedUsername": "",
  "publicKey": "",
  "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIE....Kplg==\n-----END RSA PRIVATE KEY-----",
  "keyValueList": [
    {
      "Key": "KeyMaterial",
      "Value": "-----BEGIN RSA PRIVATE KEY-----\nMIIE....Kplg==\n-----END RSA PRIVATE KEY-----"
    }
  ],
  "associatedObjectList": [],
  "isAutoGenerated": false
}

(@powerkimhub : Spider에서 VMUserID 필드에 cb-user로 채워서 주면 좋을 것 같은데, 지금은 빈 값으로 주는 것 같습니다. 😊)


TB object만 삭제하고, registerExistingSSHKey 시도

[Request]

{ 
	"connectionName": "'${CONN_CONFIG[$INDEX,$REGION]}'", 
	"name": "'${CONN_CONFIG[$INDEX,$REGION]}'-'${POSTFIX}'", 
	"cspSshKeyName": "'${NSID}-${CONN_CONFIG[$INDEX,$REGION]}-${POSTFIX}'",
	"fingerprint": "xx:c4:5a:ea:7f:c4:db:d5:80:80:92:47:7e:43:c9:2c:01:d3:ee:xx",
	"username": "cb-user",
	"publicKey": "",
	"privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIE....Kplg==\n-----END RSA PRIVATE KEY-----"
}

[Response]

{
  "id": "aws-ap-southeast-1-sjhtest",
  "name": "aws-ap-southeast-1-sjhtest",
  "connectionName": "aws-ap-southeast-1",
  "description": "",
  "cspSshKeyName": "ns01-aws-ap-southeast-1-sjhtest",
  "fingerprint": "xx:c4:5a:ea:7f:c4:db:d5:80:80:92:47:7e:43:c9:2c:01:d3:ee:xx",
  "username": "cb-user",
  "verifiedUsername": "",
  "publicKey": "",
  "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIE....Kplg==\n-----END RSA PRIVATE KEY-----",
  "keyValueList": null,
  "associatedObjectList": [],
  "isAutoGenerated": false
}

@jihoon-seo jihoon-seo requested a review from seokho-son January 18, 2022 10:07
@seokho-son
Copy link
Member

@jihoon-seo 감사합니다! :)

LGTM 입니다!

현재 option=register는

CB-TB에 없고 CB-SP에 등록되어 있는 정보를 다시 조회하여, CB-TB 오브젝트로 만드는 기능으로 사용되고 있는데,

TB, SP에는 없고 CSP에만 있는 리소스를 등록하는 경우에도
해당 옵션을 함께 사용하도록 하는 것이 좋을 것 같네요. (API를 가급적 간결하게 하기 위해)

아마도, 사용자가 option=register로 요청할 때, CSP 자원 ID를 추가로 입력할 수 있도록 하고,
CSP 자원 ID가 추가로 입력된 경우에는
CSP 자원을 직접 등록하는 것으로 이해하고 처리하도록 하면 되지 않을까 싶습니다. (CB-SP에도 등록하고, CB-TB에도 등록하고)

@seokho-son seokho-son merged commit 0d80610 into cloud-barista:main Jan 20, 2022
@jihoon-seo jihoon-seo deleted the 220118_Add_registerExistingSSHKey_feature branch January 20, 2022 05:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants