Skip to content

Commit

Permalink
Schematics agent related fixes for GA (#5041)
Browse files Browse the repository at this point in the history
* increased timeout of agent deploy to 30min

* Fix for agent and policy tags crash issue

* removed x-feature-agents header references

* added refresh_token for agent update

* Updated agent resource doc with latest

* enchanced agent update

* Modified wait logic of agent deploy with latest agent status code

* Minor edits to agent testcases
  • Loading branch information
VaishnaviGopal authored Jan 19, 2024
1 parent ac90c83 commit d9ed857
Show file tree
Hide file tree
Showing 21 changed files with 163 additions and 602 deletions.
11 changes: 5 additions & 6 deletions ibm/service/schematics/data_source_ibm_schematics_agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -541,13 +541,8 @@ func dataSourceIbmSchematicsAgentRead(context context.Context, d *schema.Resourc
}

getAgentDataOptions := &schematicsv1.GetAgentDataOptions{
// XFeatureAgents: core.BoolPtr(true),
Profile: core.StringPtr("detailed"),
}
ff := map[string]string{
"X-Feature-Agents": "true",
}
getAgentDataOptions.Headers = ff

getAgentDataOptions.SetAgentID(d.Get("agent_id").(string))

Expand Down Expand Up @@ -582,7 +577,11 @@ func dataSourceIbmSchematicsAgentRead(context context.Context, d *schema.Resourc
if err = d.Set("agent_location", agentData.AgentLocation); err != nil {
return diag.FromErr(fmt.Errorf("Error setting agent_location: %s", err))
}

if agentData.Tags != nil {
if err = d.Set("tags", agentData.Tags); err != nil {
return diag.FromErr(fmt.Errorf("Error setting tags: %s", err))
}
}
agentInfrastructure := []map[string]interface{}{}
if agentData.AgentInfrastructure != nil {
modelMap, err := dataSourceIbmSchematicsAgentAgentInfrastructureToMap(agentData.AgentInfrastructure)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,8 @@ func dataSourceIbmSchematicsAgentDeployRead(context context.Context, d *schema.R
}

getAgentDataOptions := &schematicsv1.GetAgentDataOptions{
// XFeatureAgents: core.BoolPtr(true),
Profile: core.StringPtr("detailed"),
}
ff := map[string]string{
"X-Feature-Agents": "true",
}
getAgentDataOptions.Headers = ff
getAgentDataOptions.SetAgentID(d.Get("agent_id").(string))

agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,6 @@ func TestAccIbmSchematicsAgentDeployDataSourceBasic(t *testing.T) {
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccCheckIbmSchematicsAgentDeployDataSourceConfigBasic(agentDeployJobAgentID),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_id"),
),
},
},
})
}

func TestAccIbmSchematicsAgentDeployDataSourceAllArgs(t *testing.T) {
agentDeployJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100))
agentDeployJobForce := "false"

resource.Test(t, resource.TestCase{
PreCheck: func() { acc.TestAccPreCheck(t) },
Providers: acc.TestAccProviders,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccCheckIbmSchematicsAgentDeployDataSourceConfig(agentDeployJobAgentID, agentDeployJobForce),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_deploy.schematics_agent_deploy_instance", "agent_id"),
Expand All @@ -60,25 +41,8 @@ func TestAccIbmSchematicsAgentDeployDataSourceAllArgs(t *testing.T) {

func testAccCheckIbmSchematicsAgentDeployDataSourceConfigBasic(agentDeployJobAgentID string) string {
return fmt.Sprintf(`
resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" {
agent_id = "%s"
}
data "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" {
agent_id = ibm_schematics_agent_deploy.schematics_agent_deploy_instance.agent_id
}
`, agentDeployJobAgentID)
}

func testAccCheckIbmSchematicsAgentDeployDataSourceConfig(agentDeployJobAgentID string, agentDeployJobForce string) string {
return fmt.Sprintf(`
resource "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" {
agent_id = "%s"
force = %s
}
data "ibm_schematics_agent_deploy" "schematics_agent_deploy_instance" {
agent_id = ibm_schematics_agent_deploy.schematics_agent_deploy_instance.agent_id
}
`, agentDeployJobAgentID, agentDeployJobForce)
`, agentDeployJobAgentID)
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,8 @@ func dataSourceIbmSchematicsAgentHealthRead(context context.Context, d *schema.R
}

getAgentDataOptions := &schematicsv1.GetAgentDataOptions{
// XFeatureAgents: core.BoolPtr(true),
Profile: core.StringPtr("detailed"),
}
ff := map[string]string{
"X-Feature-Agents": "true",
}
getAgentDataOptions.Headers = ff
getAgentDataOptions.SetAgentID(d.Get("agent_id").(string))

agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,6 @@ func TestAccIbmSchematicsAgentHealthDataSourceBasic(t *testing.T) {
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccCheckIbmSchematicsAgentHealthDataSourceConfigBasic(agentHealthJobAgentID),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "agent_id"),
),
},
},
})
}

func TestAccIbmSchematicsAgentHealthDataSourceAllArgs(t *testing.T) {
agentHealthJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100))
agentHealthJobForce := "false"

resource.Test(t, resource.TestCase{
PreCheck: func() { acc.TestAccPreCheck(t) },
Providers: acc.TestAccProviders,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccCheckIbmSchematicsAgentHealthDataSourceConfig(agentHealthJobAgentID, agentHealthJobForce),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_health.schematics_agent_health_instance", "agent_id"),
Expand All @@ -59,25 +40,8 @@ func TestAccIbmSchematicsAgentHealthDataSourceAllArgs(t *testing.T) {

func testAccCheckIbmSchematicsAgentHealthDataSourceConfigBasic(agentHealthJobAgentID string) string {
return fmt.Sprintf(`
resource "ibm_schematics_agent_health" "schematics_agent_health_instance" {
agent_id = "%s"
}
data "ibm_schematics_agent_health" "schematics_agent_health_instance" {
agent_id = ibm_schematics_agent_health.schematics_agent_health.agent_id
}
`, agentHealthJobAgentID)
}

func testAccCheckIbmSchematicsAgentHealthDataSourceConfig(agentHealthJobAgentID string, agentHealthJobForce string) string {
return fmt.Sprintf(`
resource "ibm_schematics_agent_health" "schematics_agent_health_instance" {
agent_id = "%s"
force = %s
}
data "ibm_schematics_agent_health" "schematics_agent_health_instance" {
agent_id = ibm_schematics_agent_health.schematics_agent_health.agent_id
}
`, agentHealthJobAgentID, agentHealthJobForce)
`, agentHealthJobAgentID)
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,8 @@ func dataSourceIbmSchematicsAgentPrsRead(context context.Context, d *schema.Reso
}

getAgentDataOptions := &schematicsv1.GetAgentDataOptions{
// XFeatureAgents: core.BoolPtr(true),
Profile: core.StringPtr("detailed"),
}
ff := map[string]string{
"X-Feature-Agents": "true",
}
getAgentDataOptions.Headers = ff
getAgentDataOptions.SetAgentID(d.Get("agent_id").(string))

agentData, response, err := schematicsClient.GetAgentDataWithContext(context, getAgentDataOptions)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,6 @@ func TestAccIbmSchematicsAgentPrsDataSourceBasic(t *testing.T) {
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccCheckIbmSchematicsAgentPrsDataSourceConfigBasic(agentPRSJobAgentID),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_id"),
),
},
},
})
}

func TestAccIbmSchematicsAgentPrsDataSourceAllArgs(t *testing.T) {
agentPRSJobAgentID := fmt.Sprintf("tf_agent_id_%d", acctest.RandIntRange(10, 100))
agentPRSJobForce := "false"

resource.Test(t, resource.TestCase{
PreCheck: func() { acc.TestAccPreCheck(t) },
Providers: acc.TestAccProviders,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccCheckIbmSchematicsAgentPrsDataSourceConfig(agentPRSJobAgentID, agentPRSJobForce),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent_prs.schematics_agent_prs_instance", "agent_id"),
Expand All @@ -59,25 +40,8 @@ func TestAccIbmSchematicsAgentPrsDataSourceAllArgs(t *testing.T) {

func testAccCheckIbmSchematicsAgentPrsDataSourceConfigBasic(agentPRSJobAgentID string) string {
return fmt.Sprintf(`
resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" {
agent_id = "%s"
}
data "ibm_schematics_agent_prs" "schematics_agent_prs_instance" {
agent_id = ibm_schematics_agent_prs.schematics_agent_prs_instance.agent_id
}
`, agentPRSJobAgentID)
}

func testAccCheckIbmSchematicsAgentPrsDataSourceConfig(agentPRSJobAgentID string, agentPRSJobForce string) string {
return fmt.Sprintf(`
resource "ibm_schematics_agent_prs" "schematics_agent_prs_instance" {
agent_id = "%s"
force = %s
}
data "ibm_schematics_agent_prs" "schematics_agent_prs_instance" {
agent_id = ibm_schematics_agent_prs.schematics_agent_prs_instance.agent_id
}
`, agentPRSJobAgentID, agentPRSJobForce)
`, agentPRSJobAgentID)
}
49 changes: 3 additions & 46 deletions ibm/service/schematics/data_source_ibm_schematics_agent_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (

func TestAccIbmSchematicsAgentDataSourceBasic(t *testing.T) {
agentDataName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100))
agentDataVersion := "1.0.0-beta2"
agentDataVersion := "1.0.0"
agentDataSchematicsLocation := "us-south"
agentDataAgentLocation := "eu-de"

Expand All @@ -42,7 +42,7 @@ func TestAccIbmSchematicsAgentDataSourceBasic(t *testing.T) {

func TestAccIbmSchematicsAgentDataSourceAllArgs(t *testing.T) {
agentDataName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100))
agentDataVersion := "1.0.0-beta2"
agentDataVersion := "1.0.0"
agentDataSchematicsLocation := "us-south"
agentDataAgentLocation := "eu-de"
agentDataDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100))
Expand All @@ -65,19 +65,12 @@ func TestAccIbmSchematicsAgentDataSourceAllArgs(t *testing.T) {
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_location"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_infrastructure.#"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_metadata.#"),
resource.TestCheckResourceAttr("data.ibm_schematics_agent.schematics_agent_instance", "agent_metadata.0.name", agentDataName),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.#"),
resource.TestCheckResourceAttr("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.name", agentDataName),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.value"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.use_default"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_inputs.0.link"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "user_state.#"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_crn"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "created_at"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "creation_by"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "updated_at"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "updated_by"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "system_state.#"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "agent_kpi.#"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_agent.schematics_agent_instance", "recent_prs_job.#"),
Expand Down Expand Up @@ -130,49 +123,13 @@ func testAccCheckIbmSchematicsAgentDataSourceConfig(agentDataName string, agentD
cos_bucket_region = "cos_bucket_region"
}
description = "%s"
tags = "FIXME"
tags = ["agent-tag"]
agent_metadata {
name = "purpose"
value = ["git", "terraform", "ansible"]
}
agent_inputs {
name = "name"
value = "value"
use_default = true
metadata {
type = "boolean"
aliases = [ "aliases" ]
description = "description"
cloud_data_type = "cloud_data_type"
default_value = "default_value"
link_status = "normal"
secure = true
immutable = true
hidden = true
required = true
options = [ "options" ]
min_value = 1
max_value = 1
min_length = 1
max_length = 1
matches = "matches"
position = 1
group_by = "group_by"
source = "source"
}
link = "link"
}
user_state {
state = "enable"
set_by = "set_by"
set_at = "2021-01-31T09:44:12Z"
}
agent_kpi {
availability_indicator = "available"
lifecycle_indicator = "consistent"
percent_usage_indicator = "percent_usage_indicator"
application_indicators = [ null ]
infra_indicators = [ null ]
}
}
Expand Down
5 changes: 5 additions & 0 deletions ibm/service/schematics/data_source_ibm_schematics_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,11 @@ func dataSourceIbmSchematicsPolicyRead(context context.Context, d *schema.Resour
return diag.FromErr(fmt.Errorf("Error setting kind: %s", err))
}

if policy.Tags != nil {
if err = d.Set("tags", policy.Tags); err != nil {
return diag.FromErr(fmt.Errorf("Error setting tags: %s", err))
}
}
target := []map[string]interface{}{}
if policy.Target != nil {
modelMap, err := dataSourceIbmSchematicsPolicyPolicyObjectsToMap(policy.Target)
Expand Down
28 changes: 4 additions & 24 deletions ibm/service/schematics/data_source_ibm_schematics_policy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func TestAccIbmSchematicsPolicyDataSourceBasic(t *testing.T) {
func TestAccIbmSchematicsPolicyDataSourceAllArgs(t *testing.T) {
policyName := fmt.Sprintf("tf_name_%d", acctest.RandIntRange(10, 100))
policyDescription := fmt.Sprintf("tf_description_%d", acctest.RandIntRange(10, 100))
policyResourceGroup := fmt.Sprintf("tf_resource_group_%d", acctest.RandIntRange(10, 100))
policyResourceGroup := "Default"
policyLocation := "us-south"
policyKind := "agent_assignment_policy"

Expand All @@ -57,11 +57,7 @@ func TestAccIbmSchematicsPolicyDataSourceAllArgs(t *testing.T) {
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "target.#"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "parameter.#"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "crn"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "account"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "scoped_resources.#"),
resource.TestCheckResourceAttr("data.ibm_schematics_policy.schematics_policy_instance", "scoped_resources.0.kind", policyKind),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "scoped_resources.0.id"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "created_at"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "created_by"),
resource.TestCheckResourceAttrSet("data.ibm_schematics_policy.schematics_policy_instance", "updated_at"),
Expand Down Expand Up @@ -90,40 +86,24 @@ func testAccCheckIbmSchematicsPolicyDataSourceConfig(policyName string, policyDe
name = "%s"
description = "%s"
resource_group = "%s"
tags = "FIXME"
tags = ["policy-tag"]
location = "%s"
state {
state = "draft"
set_by = "set_by"
set_at = "2021-01-31T09:44:12Z"
}
kind = "%s"
target {
selector_kind = "ids"
selector_ids = [ "selector_ids" ]
selector_scope {
kind = "workspace"
tags = [ "tags" ]
resource_groups = [ "resource_groups" ]
locations = [ "us-south" ]
}
}
parameter {
agent_assignment_policy_parameter {
selector_kind = "ids"
selector_ids = [ "selector_ids" ]
selector_kind = "scoped"
selector_scope {
kind = "workspace"
tags = [ "tags" ]
resource_groups = [ "resource_groups" ]
resource_groups = [ "Default" ]
locations = [ "us-south" ]
}
}
}
scoped_resources {
kind = "workspace"
id = "id"
}
}
data "ibm_schematics_policy" "schematics_policy_instance" {
Expand Down
Loading

0 comments on commit d9ed857

Please sign in to comment.