Cb-tumblebug: "List NS" is not working well

Created on 10 Jun 2021  Β·  7Comments  Β·  Source: cloud-barista/cb-tumblebug

What happened
:

[ν˜„μƒ 1]
"already exists" occurs for non-existing namespace

cb-tumblebug/src/testclient/scripts/2.configureTumblebug# ./list-ns.sh
####################################################################
## 0. Namespace: List
####################################################################
{
  "ns": [
    {
      "id": "inno-demotest-ns",
      "name": "inno-demotest-ns",
      "description": "innogrid namespace for test"
    },
    {
      "id": "mzc-demotest-ns",
      "name": "mzc-demotest-ns",
      "description": "mzc\nnamespace"
    }
  ]
}
cb-tumblebug/src/testclient/scripts/2.configureTumblebug# ./create-ns.sh
####################################################################
## 2. Namespace: Create
####################################################################
{
  "message": "CreateNs(); The namespace ns-jhseo already exists."
}

[ν˜„μƒ 2]
NS λ₯Ό μƒˆλ‘œ λ§Œλ“  λ’€ "List NS" 해도 보이지 μ•ŠμŒ

cb-tumblebug/src/testclient/scripts/2.configureTumblebug# ./create-ns.sh
####################################################################
## 2. Namespace: Create
####################################################################
{
  "id": "ns-jhseo2",
  "name": "ns-jhseo2",
  "description": "NameSpace for General Testing"
}
cb-tumblebug/src/testclient/scripts/2.configureTumblebug# ./list-ns.sh
####################################################################
## 0. Namespace: List
####################################################################
{
  "ns": [
    {
      "id": "inno-demotest-ns",
      "name": "inno-demotest-ns",
      "description": "innogrid namespace for test"
    },
    {
      "id": "mzc-demotest-ns",
      "name": "mzc-demotest-ns",
      "description": "mzc\nnamespace"
    }
  ]
}

["Get NS" λŠ” μž‘λ™ν•¨]

cb-tumblebug/src/testclient/scripts/2.configureTumblebug# ./get-ns.sh
####################################################################
## 0. Namespace: Get
####################################################################
{
  "id": "ns-jhseo2",
  "name": "ns-jhseo2",
  "description": "NameSpace for General Testing"
}

[Objects 쑰회 - /ns 둜 μ‘°νšŒν•˜λ©΄ ns-jhseo, ns-jhseo2 보이지 μ•ŠμŒ]

{
  "object": [
    "/ns/inno-demotest-ns",
    "/ns/mzc-demotest-ns",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22/vm/aaaa",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22/vm/asynctest",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22/vm/asynctest2",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22/vm/asynctest3",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22/vm/asynctest4",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22/vm/simple-vm-import",
    "/ns/mzc-demotest-ns/mcis/mcis-expert-only22/vm/vm-test0001",
    "/ns/mzc-demotest-ns/mcis/mzc-aws-mcis-01",
    "/ns/mzc-demotest-ns/mcis/mzc-aws-mcis-01/vm/mzc-aws-mcis-server-01",
    "/ns/mzc-demotest-ns/mcis/mzc-aws-mcis-01/vm/mzc-gcp-mcis-server-02",
    "/ns/mzc-demotest-ns/mcis/mzc-gcp-mcis-01",
    "/ns/mzc-demotest-ns/mcis/mzc-gcp-mcis-01/vm/expert-vm-01-add",
    "/ns/mzc-demotest-ns/mcis/mzc-gcp-mcis-01/vm/mzc-gcp-mcis-server-01"
  ]
}

[Objects 쑰회 - /ns/ns-jhseo 둜 μ‘°νšŒν•˜λ©΄ /ns/ns-jhseo κ°€ λ³΄μž„]

{
  "object": [
    "/ns/ns-jhseo",
    "/ns/ns-jhseo/cpuSize/1/memSize/1/diskSize/0/specId/jhseo-wt-test",
    "/ns/ns-jhseo/resources/image/jhseo-wt-test",
    "/ns/ns-jhseo/resources/securityGroup/jhseo-wt-test",
    "/ns/ns-jhseo/resources/spec/jhseo-wt-test",
    "/ns/ns-jhseo/resources/sshKey/jhseo-wt-test",
    "/ns/ns-jhseo/resources/vNet/jhseo",
    "/ns/ns-jhseo/resources/vNet/jhseo-wt-test",
    "/ns/ns-jhseo2"
  ]
}

[Objects 쑰회 - /ns/ns-jhseo2 둜 μ‘°νšŒν•˜λ©΄ /ns/ns-jhseo2 κ°€ λ³΄μž„]

{
  "object": [
    "/ns/ns-jhseo2"
  ]
}

What you expected to happen
:

How to reproduce it (as minimally and precisely as possible)
:

Anything else we need to know?
:

Environment

  • Source version or branch:
  • OS:
  • Others:

Proposed solution
:

Any other context
:

[μΆ”μ •]
Key-Value store λ₯Ό μ‚¬μš©ν•˜λŠ” κ³Όμ •μ—μ„œ, entry handling 을 μ œλŒ€λ‘œ ν•˜μ§€ λͺ»ν•΄ μΌμ–΄λ‚œ ν˜„μƒμΌμ§€..?

bug

All 7 comments

ns 둜 μ‹œμž‘ν•˜λŠ” NS 에 λŒ€ν•΄μ„œλŠ” μœ„μ˜ ν˜„μƒμ΄ λ°œμƒν•˜κ³ ,
ns 둜 μ‹œμž‘ν•˜μ§€ μ•ŠλŠ” NS 에 λŒ€ν•΄μ„œλŠ” μœ„μ˜ ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šκ³  μžˆμŠ΅λ‹ˆλ‹€.

cb-tumblebug/src/testclient/scripts/2.configureTumblebug# ./list-ns.sh
####################################################################
## 0. Namespace: List
####################################################################
{
  "ns": [
    {
      "id": "inno-demotest-ns",
      "name": "inno-demotest-ns",
      "description": "innogrid namespace for test"
    },
    {
      "id": "jhseo-test",
      "name": "jhseo-test",
      "description": ""
    },
    {
      "id": "jhseo-test2",
      "name": "jhseo-test2",
      "description": ""
    },
    {
      "id": "mzc-demotest-ns",
      "name": "mzc-demotest-ns",
      "description": "mzc\nnamespace"
    }
  ]
}

μ΄μƒν•˜λ„€μš”.. 흠... 잘되던 κΈ°λŠ₯μ΄μ—ˆλ˜κ±° 같은데..
μ΅œκ·Όμ— 이것저것 λ³€κ²½ν•˜λ©΄μ„œ 영ν–₯이 κ°„ 것 같기도 ν•˜κ³ .. γ… γ…  cb-store의 영ν–₯도 μžˆμœΌλ €λ‚˜μš”.. γ… γ… 

일단 ν˜„μž¬ 라이프사이클 μ •λ¦¬ν•˜λŠ”λ° 였λ₯˜κ°€ μ’€ μžˆμ–΄μ„œ μ²˜λ¦¬ν•˜κ³  ν•¨κ»˜ 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€..

ns-01, ns-02 등둝 ν›„,

였브젝트둜 리슀트 쑰회(Key: /ns or /ns/ ν•˜κΈ°λ₯Ό ν–ˆμ„ λ•Œμ˜ κ²°κ³ΌλŠ”
/ns/ns-01 만 λ‚˜μ˜€κ³  /ns/ns-02 λŠ” λ‚˜μ˜€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

였브젝트 쑰회 κΈ°λŠ₯의 μ½”λ“œλ₯Ό 보면, λ‹¨μˆœνžˆ CBStore 의 GetList만 ν•˜κΈ° 떄문에
이 였λ₯˜λŠ” CBStoreμ—μ„œ κΈ°μΈν–ˆλ‹€κ³  νŒλ‹¨μ΄ λ©λ‹ˆλ‹€.

// func GetObjectList returns IDs of each child objects that has the same key.
func GetObjectList(key string) []string {
    keyValue, _ := CBStore.GetList(key, true)
    var childIdList []string
    for _, v := range keyValue {
        childIdList = append(childIdList, v.Key)
    }
    return childIdList
}

@powerkimhub 였λ₯˜ 상황 μ°Έκ³ ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

CBStrore의 ν•΄λ‹Ή 였λ₯˜λ₯Ό μˆ˜μ •ν•˜λ©΄, λ‹€λ₯Έ FW에도 영ν–₯이 μžˆμ–΄μ„œ,
ν˜Ήμ‹œ λͺ¨λ₯Ό 파μž₯을 λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œ
μΉ΄ν‘ΈμΉ˜λ…Έ ν–‰μ‚¬κΉŒμ§€λŠ” μˆ˜μ •ν•˜μ§€ μ•Šκ³ , 릴리슀 전에 μˆ˜μ • 및 ν…ŒμŠ€νŠΈν•˜λŠ” κ²ƒμœΌλ‘œ 이야기 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κ·Έ λ™μ•ˆ, ν•œμ‹œμ μœΌλ‘œ, CB-TB의 ns 등을 μ‚¬μš©ν•˜μ‹€ λ•Œ 유의 사항을 곡유 λ“œλ¦½λ‹ˆλ‹€.

CB-TB (그리고 CB-Ladybug, μ•„λ§ˆλ„ CB-Spider, .. 등도 λͺ¨λ‘ κ΄€λ ¨) 의 였브젝트(ns, mcis, vm, vnet, sg, ...)λ₯Ό μƒμ„±ν•˜μ‹€ λ•Œ,
name (λ˜λŠ” id) κ°’μœΌλ‘œ ν•΄λ‹Ή string을 ν¬ν•¨ν•˜λŠ” νŒ¨ν„΄μ„ ν”Όν•΄μ£Όμ‹œκΈ° λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.
(예λ₯Ό λ“€μ–΄ nsλ₯Ό μƒμ„±ν•˜μ‹€λ•Œ, nsλΌλŠ” 단어λ₯Ό ν”Όν•΄μ£Όμ‹œκ³ , mcis μƒμ„±ν•˜μ‹€ λ•Œ mcisλ₯Ό ν”Όν•΄μ£Όμ‹œλŠ” λ“±μ˜ νŒ¨ν„΄μž…λ‹ˆλ‹€.)

λͺ…ν™•ν•˜κ²Œ 문제λ₯Ό ν™•μΈν•œ 것은 ns 이며, λ‹€λ₯Έ μ˜€λΈŒμ νŠΈλ„ 문제 λ°œμƒμ˜ μ†Œμ§€κ°€ μžˆμœΌλ―€λ‘œ

ν˜Ήμ‹œ 였브젝트 등둝 ν›„, 리슀트 κΈ°λŠ₯을 μˆ˜ν–‰ν–ˆλŠ”λ°
λ“±λ‘ν•œ μ˜€λΈŒμ νŠΈκ°€ λ¦¬μŠ€νŠΈμ— 포함이 λ˜μ–΄ μžˆμ§€ μ•Šλ‹€κ±°λ‚˜ ν•˜λŠ” κ²½μš°κ°€ λ°œμƒν•˜λ©΄, 리포트λ₯Ό 뢀탁 λ“œλ¦½λ‹ˆλ‹€.

@powerkimhub says (in this message):

κ΄€λ ¨ μ΄μŠˆλŠ” 10,000개 κ°€κΉŒμ΄ Object(Key/Value)κ°€ λ“±λ‘λ˜μ—ˆμ„ λ•Œ λ°œμƒν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.
ν˜„μž¬ cb-store: GetList()κ°€ fetchμ‹œ 10,000개 limit이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

Was this page helpful?
0 / 5 - 0 ratings