-
Notifications
You must be signed in to change notification settings - Fork 51
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
Enhance network features and align with Spider APIs #1720
Conversation
@seokho-son @sykim-etri @innodreamer Network feature 개선 작업을 추진하면서, 영향이 갈 수 있는 부분들을 중간 중간 공유 드리려고 합니다. 우선, Create vNet API와 Register vNet API의 분리 계획을 공유 드립니다. 참고하시기 바랍니다.
|
동의합니다. 감사합니다. (저는 특별히 영향갈 사항 없을 것 같습니다.) |
개선된 API (노란색 형광펜) in 5044675 예정 사항
검토 필요 사항
|
api path 수정은 필요해보입니다. 아마 vNet/register 라고 하면 register와 리소스id랑 구분이 되지 않아서 문제가 생길걸예요. |
코멘트 감사합니다 :-) POST method 간에는 괜찮을 것 같다는 생각입니다. 어느 부분에서 요청 라우팅에 이슈가 있을 것으로 생각하시는지 파악이 어려운데요. 혹시, TB에서 충돌되는 url path가 있으면 공유해 주실 수 있을까요? |
@yunkon-kim method로 구분되어 있으면 라우팅 자체에 문제가 생길 것 같지는 않네요. 그래도 아마~ rest의 컨벤션 상 해당 패턴의 path를 사용하지는 않았던 것 같습니다. registerResources 이렇게 앞쪽 path를 변경하는 것도 한 방법일 것 같기도 합니다. 아무튼, 현재는 라우트 문제가 없으니 특별히 시급히 처리해야 하는 사항은 아니겠습니다. 정해지면, 다른 리소스들에 대해서도 vNet과 비슷하게 처리해야 할 것 같네요. :) |
URI 상에 "/action" 생략하고 URI를 디자인하는 컨벤션도 있는 것으로 파악되었어서 "/register"가 되었던 상황입니다. 내부적으로 이슈가 되는 것을 보니, 개선하는 것이 좋을 것 같습니다. 다음번 수정 시 개선해 놓도록 하겠습니다. (후보)
(탈락)
|
개선된 API (노란색 형광펜) (참고)
Note - 복잡한 부분으로 인해 추후 기여/개선이 쉽지 않을 것으로 보임 |
Spider VPC/subnet API 관련 문의 및 답변 사항: 참고 - 1번 항목에 대해서 지속 트래킹 필요 |
새로운 vNet 및 Subnet을 CRUD하는 API set과, 외부의 vNet 및 Subnet을 CRUD하는 API set에 대하여 문의 드립니다. (1안)
(2안)
|
* Split and apply PUT method to register the existing vNet - Note - After upgrading OAS 3.0, creating and registering vNet APIs can be combined. * Update APIs to get and delete the specified vNet * Check if the requested network (vNet and subnets) are valid or not
* Reflect the Spider APIs, which are "add and remove subnets" * Update APIs to create and delete a subnet associated with the specified vNet * Check if the requested subnet is valid for the existing vNet
* Enhance validation mechanism * Split API set to register/deregister vNet and subnets * Align with Spider request/response bodies (i.e. go struct) * Update API docs
PTAL @seokho-son (cc. @sykim-etri) |
@seokho-son MapUI에서 테스트를 누락하여 잠시만 hold 하겠습니다. |
확인해보니, MapUI 상에서 MCI 생성시 에러가 뜨네요.. 아마도 Rebase 과정에서 실수가 있었던 것 같습니다 ;;
|
|
의견 감사합니다. 오프라인에서 논의한 바와 같이 |
DELETE /ns/{nsId}/ 그러네요, de가 더 직관적일거 같긴한데, 일단 기여해주시는대로 따라가겠슴다! |
|
* Create a label when a vNet or subnet is successfully created/registered * Remove the label when a vNet or subnet is successfully deleted/deregistered * Clean up vNet/subnet objects from kvstore if vNet/subnet creation fails
개선 및 테스트 완료하였습니다. (개선 사항)
(테스트)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yunkon-kim API 명칭 관련 코멘트 입니다. :)
// @Param subnetId path string true "Subnet ID" | ||
// @Success 200 {object} model.SimpleMsg | ||
// @Failure 404 {object} model.SimpleMsg | ||
// @Router /ns/{nsId}/externalResources/vNet/{vNetId}/subnet/{subnetId} [delete] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// @Router /ns/{nsId}/externalResources/vNet/{vNetId}/subnet/{subnetId} [delete] | |
// @Router /ns/{nsId}/deregisterCspResource/vNet/{vNetId}/subnet/{subnetId} [delete] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗.. Path 수정을 누락했네요;;
src/api/rest/server/resource/vnet.go
Outdated
// @Success 201 {object} model.TbVNetInfo | ||
// @Failure 404 {object} model.SimpleMsg | ||
// @Failure 500 {object} model.SimpleMsg | ||
// @Router /ns/{nsId}/externalResources/vNet [post] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// @Router /ns/{nsId}/externalResources/vNet [post] | |
// @Router /ns/{nsId}/registerCspResource/vNet [post] |
src/api/rest/server/resource/vnet.go
Outdated
// @Success 201 {object} model.TbVNetInfo | ||
// @Failure 404 {object} model.SimpleMsg | ||
// @Failure 500 {object} model.SimpleMsg | ||
// @Router /ns/{nsId}/externalResources/vNet/{vNetId} [delete] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// @Router /ns/{nsId}/externalResources/vNet/{vNetId} [delete] | |
// @Router /ns/{nsId}/deregisterCspResource/vNet/{vNetId} [delete] |
src/api/rest/server/resource/vnet.go
Outdated
// @Failure 404 {object} model.SimpleMsg | ||
// @Failure 500 {object} model.SimpleMsg | ||
// @Router /ns/{nsId}/externalResources/vNet/{vNetId} [delete] | ||
func RestPostDeregisterVNet(c echo.Context) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
func RestPostDeregisterVNet(c echo.Context) error { | |
func RestDeleteDeregisterVNet(c echo.Context) error { |
src/api/rest/server/resource/vnet.go
Outdated
// RestPostDeregisterVNet godoc | ||
// @ID RestPostDeregisterVNet |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// RestPostDeregisterVNet godoc | |
// @ID RestPostDeregisterVNet | |
// RestDeleteDeregisterVNet godoc | |
// @ID RestDeleteDeregisterVNet |
src/api/rest/server/server.go
Outdated
g.POST("/:nsId/externalResources/vNet", rest_resource.RestPostRegisterVNet) | ||
g.DELETE("/:nsId/externalResources/vNet/:vNetId", rest_resource.RestPostDeregisterVNet) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
g.POST("/:nsId/externalResources/vNet", rest_resource.RestPostRegisterVNet) | |
g.DELETE("/:nsId/externalResources/vNet/:vNetId", rest_resource.RestPostDeregisterVNet) | |
g.POST("/:nsId/registerCspResource/vNet", rest_resource.RestPostRegisterVNet) | |
g.DELETE("/:nsId/deregisterCspResource/vNet/:vNetId", rest_resource.RestDeleteDeregisterVNet) |
@seokho-son 리뷰 코멘트 주신 부분 수정하였습니다. Spider 0.9.2 릴리스 이후에, Azure의 get image 관련 이슈가 해소된 건을 공유 받았습니다. Spider 최신 버전으로 빠르게 테스트 해보고 공유드리겠습니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yunkon-kim 마이너한 코멘트가 있습니다.
|
Co-authored-by: Seokho Son <[email protected]>
/approve |
This PR will enhance network features and align with Spider APIs.
The APIs
You can find progress and changes in comments/commits.
Test result
You can find the test result in this discussion #1783
Info/warning - I tested this on AWS, GCP, and Azure. Some issues may remain still. If you encounter any issues on vNet/subnet, please mention @yunkon-kim to address them ASAP.
Ref: #1710