Skip to content

Commit

Permalink
Merge pull request #600 from ystia/bugfix/GH-598-req-target
Browse files Browse the repository at this point in the history
check requirement type and requirement name for func GetTargetNodeFor…
  • Loading branch information
stebenoist committed Feb 5, 2020
2 parents c9d57fb + 9823c8f commit 0b05622
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
### BUG FIXES

* Tosca public_ip_address attribute is wrongly set with private address for hosts pool computes ([GH-593](https://github.com/ystia/yorc/issues/593))
* REQ_TARGET keyword on TOSCA doesn't work with requirement type ([GH-598](https://github.com/ystia/yorc/issues/598))

## 4.0.0-M8 (January 24, 2020)

Expand Down
8 changes: 5 additions & 3 deletions deployments/requirements.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,9 +206,11 @@ func GetTargetNodeForRequirementByName(ctx context.Context, deploymentID, nodeNa
}

for _, reqList := range reqMap {
req, exist := reqList[requirementName]
if exist {
return req.Node, nil
for name, reqAssignment := range reqList {
// Search matching with name or type_requirement
if name == requirementName || reqAssignment.TypeRequirement == requirementName {
return reqAssignment.Node, nil
}
}
}
return "", nil
Expand Down
12 changes: 9 additions & 3 deletions deployments/requirements_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func testRequirements(t *testing.T, srv1 *testutil.TestServer) {
{"network_2": tosca.RequirementAssignment{Node: "TNode3", TypeRequirement: "network"}},
{"storage": tosca.RequirementAssignment{Node: "TNode4"}},
{"storage_other": tosca.RequirementAssignment{Node: "TNode5", TypeRequirement: "storage", Relationship: "my_relationship", Capability: "yorc.capabilities.Assignable"}},
{"req_name": tosca.RequirementAssignment{Node: "myNode", TypeRequirement: "req_type"}},
}

err := storage.GetStore(types.StoreTypeDeployment).Set(ctx, consulutil.DeploymentKVPrefix+"/t1/topology/nodes/Compute1", node)
Expand Down Expand Up @@ -89,7 +90,7 @@ func testGetNbRequirementsForNode(t *testing.T) {
t.Parallel()
reqNb, err := GetNbRequirementsForNode(ctx, "t1", "Compute1")
require.Nil(t, err)
require.Equal(t, 7, reqNb)
require.Equal(t, 8, reqNb)

reqNb, err = GetNbRequirementsForNode(ctx, "t1", "do_not_exits")
require.Nil(t, err)
Expand Down Expand Up @@ -216,9 +217,9 @@ func testGetRequirementsIndexes(t *testing.T) {
ctx := context.Background()
t.Parallel()
indexes, err := GetRequirementsIndexes(ctx, "t1", "Compute1")
expected := []string{"0", "1", "2", "3", "4", "5", "6"}
expected := []string{"0", "1", "2", "3", "4", "5", "6", "7"}
require.Nil(t, err)
require.Equal(t, 7, len(indexes))
require.Equal(t, 8, len(indexes))
if !reflect.DeepEqual(indexes, expected) {
t.Errorf("GetRequirementsIndexes = %v, want %v", indexes, expected)
}
Expand Down Expand Up @@ -249,6 +250,11 @@ func testGetTargetNodeForRequirementByName(t *testing.T) {
expected := "TNode5"
require.Nil(t, err)
require.Equal(t, expected, node)

node, err = GetTargetNodeForRequirementByName(ctx, "t1", "Compute1", "req_type")
expected = "myNode"
require.Nil(t, err)
require.Equal(t, expected, node)
}

func testHasAnyRequirementCapability(t *testing.T) {
Expand Down

0 comments on commit 0b05622

Please sign in to comment.