Skip to content

Commit 2c386ce

Browse files
richardambridgejotruon
authored andcommitted
Added - Gateway plugin support for Management Agent
1 parent db2817b commit 2c386ce

19 files changed

+280
-30
lines changed

examples/management_agent/management_agent.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,8 @@ data "oci_management_agent_management_agent_available_histories" "test_managemen
7070
time_availability_status_started_less_than = "2029-09-28T01:01:01.000Z"
7171

7272
}
73+
74+
data "oci_management_agent_management_agent_get_auto_upgradable_config" "test_management_agent_get_auto_upgradable_config" {
75+
#Required
76+
compartment_id = var.tenancy_ocid
77+
}

oci/management_agent_management_agent_count_data_source.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ func ManagementAgentManagementAgentCountDataSource() *schema.Resource {
3333
Type: schema.TypeBool,
3434
Optional: true,
3535
},
36+
"install_type": {
37+
Type: schema.TypeString,
38+
Optional: true,
39+
},
3640
// Computed
3741
"items": {
3842
Type: schema.TypeList,
@@ -68,6 +72,10 @@ func ManagementAgentManagementAgentCountDataSource() *schema.Resource {
6872
Type: schema.TypeBool,
6973
Computed: true,
7074
},
75+
"install_type": {
76+
Type: schema.TypeString,
77+
Computed: true,
78+
},
7179
"platform_type": {
7280
Type: schema.TypeString,
7381
Computed: true,
@@ -130,6 +138,10 @@ func (s *ManagementAgentManagementAgentCountDataSourceCrud) Get() error {
130138
request.HasPlugins = &tmp
131139
}
132140

141+
if installType, ok := s.D.GetOkExists("install_type"); ok {
142+
request.InstallType = oci_management_agent.SummarizeManagementAgentCountsInstallTypeEnum(installType.(string))
143+
}
144+
133145
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "management_agent")
134146

135147
response, err := s.Client.SummarizeManagementAgentCounts(context.Background(), request)
@@ -180,6 +192,8 @@ func ManagementAgentAggregationDimensionsToMap(obj *oci_management_agent.Managem
180192
result["has_plugins"] = bool(*obj.HasPlugins)
181193
}
182194

195+
result["install_type"] = string(obj.InstallType)
196+
183197
result["platform_type"] = string(obj.PlatformType)
184198

185199
if obj.Version != nil {

oci/management_agent_management_agent_count_test.go

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"testing"
99

1010
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
11-
"github.com/hashicorp/terraform-plugin-sdk/terraform"
1211

1312
"github.com/terraform-providers/terraform-provider-oci/httpreplay"
1413
)
@@ -18,6 +17,7 @@ var (
1817
"compartment_id": Representation{repType: Required, create: `${var.compartment_id}`},
1918
"group_by": Representation{repType: Required, create: []string{`version`}},
2019
"has_plugins": Representation{repType: Required, create: `true`},
20+
"install_type": Representation{repType: Required, create: `AGENT`},
2121
}
2222

2323
ManagementAgentCountResourceConfig = ""
@@ -28,7 +28,6 @@ func TestManagementAgentManagementAgentCountResource_basic(t *testing.T) {
2828
httpreplay.SetScenario("TestManagementAgentManagementAgentCountResource_basic")
2929
defer httpreplay.SaveScenario()
3030

31-
provider := testAccProvider
3231
config := testProviderConfig()
3332

3433
compartmentId := getEnvSettingWithBlankDefault("compartment_ocid")
@@ -38,24 +37,19 @@ func TestManagementAgentManagementAgentCountResource_basic(t *testing.T) {
3837

3938
saveConfigContent("", "", "", t)
4039

41-
resource.Test(t, resource.TestCase{
42-
PreCheck: func() { testAccPreCheck(t) },
43-
Providers: map[string]terraform.ResourceProvider{
44-
"oci": provider,
45-
},
46-
Steps: []resource.TestStep{
47-
// verify singular datasource
48-
{
49-
Config: config +
50-
generateDataSourceFromRepresentationMap("oci_management_agent_management_agent_count", "test_management_agent_count", Required, Create, managementAgentCountSingularDataSourceRepresentation) +
51-
compartmentIdVariableStr + ManagementAgentCountResourceConfig,
52-
Check: ComposeAggregateTestCheckFuncWrapper(
53-
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
54-
resource.TestCheckResourceAttr(singularDatasourceName, "has_plugins", "true"),
55-
56-
resource.TestCheckResourceAttrSet(singularDatasourceName, "items.#"),
57-
),
58-
},
40+
ResourceTest(t, nil, []resource.TestStep{
41+
// verify singular datasource
42+
{
43+
Config: config +
44+
generateDataSourceFromRepresentationMap("oci_management_agent_management_agent_count", "test_management_agent_count", Required, Create, managementAgentCountSingularDataSourceRepresentation) +
45+
compartmentIdVariableStr + ManagementAgentCountResourceConfig,
46+
Check: ComposeAggregateTestCheckFuncWrapper(
47+
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
48+
resource.TestCheckResourceAttr(singularDatasourceName, "has_plugins", "true"),
49+
resource.TestCheckResourceAttr(singularDatasourceName, "install_type", "AGENT"),
50+
51+
resource.TestCheckResourceAttrSet(singularDatasourceName, "items.#"),
52+
),
5953
},
6054
})
6155
}

oci/management_agent_management_agent_data_source.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ func (s *ManagementAgentManagementAgentDataSourceCrud) SetData() error {
9999
s.D.Set("install_path", *s.Res.InstallPath)
100100
}
101101

102+
s.D.Set("install_type", s.Res.InstallType)
103+
102104
if s.Res.IsAgentAutoUpgradable != nil {
103105
s.D.Set("is_agent_auto_upgradable", *s.Res.IsAgentAutoUpgradable)
104106
}
@@ -127,6 +129,10 @@ func (s *ManagementAgentManagementAgentDataSourceCrud) SetData() error {
127129
}
128130
s.D.Set("plugin_list", pluginList)
129131

132+
if s.Res.ResourceArtifactVersion != nil {
133+
s.D.Set("resource_artifact_version", *s.Res.ResourceArtifactVersion)
134+
}
135+
130136
s.D.Set("state", s.Res.LifecycleState)
131137

132138
if s.Res.TimeCreated != nil {
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package oci
5+
6+
import (
7+
"context"
8+
9+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
10+
oci_management_agent "github.com/oracle/oci-go-sdk/v48/managementagent"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_management_agent_management_agent_get_auto_upgradable_config", ManagementAgentManagementAgentGetAutoUpgradableConfigDataSource())
15+
}
16+
17+
func ManagementAgentManagementAgentGetAutoUpgradableConfigDataSource() *schema.Resource {
18+
return &schema.Resource{
19+
Read: readSingularManagementAgentManagementAgentGetAutoUpgradableConfig,
20+
Schema: map[string]*schema.Schema{
21+
"compartment_id": {
22+
Type: schema.TypeString,
23+
Required: true,
24+
},
25+
// Computed
26+
"is_agent_auto_upgradable": {
27+
Type: schema.TypeBool,
28+
Computed: true,
29+
},
30+
},
31+
}
32+
}
33+
34+
func readSingularManagementAgentManagementAgentGetAutoUpgradableConfig(d *schema.ResourceData, m interface{}) error {
35+
sync := &ManagementAgentManagementAgentGetAutoUpgradableConfigDataSourceCrud{}
36+
sync.D = d
37+
sync.Client = m.(*OracleClients).managementAgentClient()
38+
39+
return ReadResource(sync)
40+
}
41+
42+
type ManagementAgentManagementAgentGetAutoUpgradableConfigDataSourceCrud struct {
43+
D *schema.ResourceData
44+
Client *oci_management_agent.ManagementAgentClient
45+
Res *oci_management_agent.GetAutoUpgradableConfigResponse
46+
}
47+
48+
func (s *ManagementAgentManagementAgentGetAutoUpgradableConfigDataSourceCrud) VoidState() {
49+
s.D.SetId("")
50+
}
51+
52+
func (s *ManagementAgentManagementAgentGetAutoUpgradableConfigDataSourceCrud) Get() error {
53+
request := oci_management_agent.GetAutoUpgradableConfigRequest{}
54+
55+
if compartmentId, ok := s.D.GetOkExists("compartment_id"); ok {
56+
tmp := compartmentId.(string)
57+
request.CompartmentId = &tmp
58+
}
59+
60+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "management_agent")
61+
62+
response, err := s.Client.GetAutoUpgradableConfig(context.Background(), request)
63+
if err != nil {
64+
return err
65+
}
66+
67+
s.Res = &response
68+
return nil
69+
}
70+
71+
func (s *ManagementAgentManagementAgentGetAutoUpgradableConfigDataSourceCrud) SetData() error {
72+
if s.Res == nil {
73+
return nil
74+
}
75+
76+
s.D.SetId(GenerateDataSourceHashID("ManagementAgentManagementAgentGetAutoUpgradableConfigDataSource-", ManagementAgentManagementAgentGetAutoUpgradableConfigDataSource(), s.D))
77+
78+
if s.Res.IsAgentAutoUpgradable != nil {
79+
s.D.Set("is_agent_auto_upgradable", *s.Res.IsAgentAutoUpgradable)
80+
}
81+
82+
return nil
83+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package oci
5+
6+
import (
7+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
11+
12+
"github.com/terraform-providers/terraform-provider-oci/httpreplay"
13+
)
14+
15+
var (
16+
managementAgentGetAutoUpgradableConfigSingularDataSourceRepresentation = map[string]interface{}{
17+
"compartment_id": Representation{repType: Required, create: `${var.compartment_id}`},
18+
}
19+
20+
ManagementAgentGetAutoUpgradableConfigResourceConfig = ""
21+
)
22+
23+
// issue-routing-tag: management_agent/default
24+
func TestManagementAgentManagementAgentGetAutoUpgradableConfigResource_basic(t *testing.T) {
25+
httpreplay.SetScenario("TestManagementAgentManagementAgentGetAutoUpgradableConfigResource_basic")
26+
defer httpreplay.SaveScenario()
27+
28+
config := testProviderConfig()
29+
30+
compartmentId := getEnvSettingWithBlankDefault("tenancy_ocid")
31+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
32+
33+
singularDatasourceName := "data.oci_management_agent_management_agent_get_auto_upgradable_config.test_management_agent_get_auto_upgradable_config"
34+
35+
saveConfigContent("", "", "", t)
36+
37+
ResourceTest(t, nil, []resource.TestStep{
38+
// verify singular datasource
39+
{
40+
Config: config +
41+
generateDataSourceFromRepresentationMap("oci_management_agent_management_agent_get_auto_upgradable_config", "test_management_agent_get_auto_upgradable_config", Required, Create, managementAgentGetAutoUpgradableConfigSingularDataSourceRepresentation) +
42+
compartmentIdVariableStr + ManagementAgentGetAutoUpgradableConfigResourceConfig,
43+
Check: ComposeAggregateTestCheckFuncWrapper(
44+
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
45+
46+
resource.TestCheckResourceAttrSet(singularDatasourceName, "is_agent_auto_upgradable"),
47+
),
48+
},
49+
})
50+
}

oci/management_agent_management_agent_image_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
var (
1616
managementAgentImageDataSourceRepresentation = map[string]interface{}{
1717
"compartment_id": Representation{repType: Required, create: `${var.compartment_id}`},
18+
"install_type": Representation{repType: Optional, create: `AGENT`},
1819
"state": Representation{repType: Optional, create: `ACTIVE`},
1920
}
2021

@@ -43,7 +44,6 @@ func TestManagementAgentManagementAgentImageResource_basic(t *testing.T) {
4344
compartmentIdVariableStr + ManagementAgentImageResourceConfig,
4445
Check: ComposeAggregateTestCheckFuncWrapper(
4546
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
46-
4747
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.#"),
4848
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.checksum"),
4949
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.id"),
@@ -53,6 +53,7 @@ func TestManagementAgentManagementAgentImageResource_basic(t *testing.T) {
5353
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.size"),
5454
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.state"),
5555
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.version"),
56+
resource.TestCheckResourceAttr(datasourceName, "management_agent_images.0.state", "ACTIVE"),
5657
),
5758
},
5859
})

oci/management_agent_management_agent_images_data_source.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ func ManagementAgentManagementAgentImagesDataSource() *schema.Resource {
2323
Type: schema.TypeString,
2424
Required: true,
2525
},
26+
"install_type": {
27+
Type: schema.TypeString,
28+
Optional: true,
29+
},
2630
"name": {
2731
Type: schema.TypeString,
2832
Optional: true,
@@ -106,6 +110,10 @@ func (s *ManagementAgentManagementAgentImagesDataSourceCrud) Get() error {
106110
request.CompartmentId = &tmp
107111
}
108112

113+
if installType, ok := s.D.GetOkExists("install_type"); ok {
114+
request.InstallType = oci_management_agent.ListManagementAgentImagesInstallTypeEnum(installType.(string))
115+
}
116+
109117
if name, ok := s.D.GetOkExists("name"); ok {
110118
tmp := name.(string)
111119
request.Name = &tmp

oci/management_agent_management_agent_plugin_count_data_source.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ func ManagementAgentManagementAgentPluginCountDataSource() *schema.Resource {
5353
// Optional
5454

5555
// Computed
56+
"plugin_display_name": {
57+
Type: schema.TypeString,
58+
Computed: true,
59+
},
5660
"plugin_name": {
5761
Type: schema.TypeString,
5862
Computed: true,
@@ -141,6 +145,10 @@ func ManagementAgentPluginAggregationToMap(obj oci_management_agent.ManagementAg
141145
func ManagementAgentPluginAggregationDimensionsToMap(obj *oci_management_agent.ManagementAgentPluginAggregationDimensions) map[string]interface{} {
142146
result := map[string]interface{}{}
143147

148+
if obj.PluginDisplayName != nil {
149+
result["plugin_display_name"] = string(*obj.PluginDisplayName)
150+
}
151+
144152
if obj.PluginName != nil {
145153
result["plugin_name"] = string(*obj.PluginName)
146154
}

oci/management_agent_management_agent_resource.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ func ManagementAgentManagementAgentResource() *schema.Resource {
6060
},
6161
"is_agent_auto_upgradable": {
6262
Type: schema.TypeBool,
63-
Optional: true,
6463
Computed: true,
6564
},
6665
"deploy_plugins_id": {
@@ -96,6 +95,10 @@ func ManagementAgentManagementAgentResource() *schema.Resource {
9695
Type: schema.TypeString,
9796
Computed: true,
9897
},
98+
"install_type": {
99+
Type: schema.TypeString,
100+
Computed: true,
101+
},
99102
"is_customer_deployed": {
100103
Type: schema.TypeBool,
101104
Computed: true,
@@ -149,6 +152,10 @@ func ManagementAgentManagementAgentResource() *schema.Resource {
149152
},
150153
},
151154
},
155+
"resource_artifact_version": {
156+
Type: schema.TypeString,
157+
Computed: true,
158+
},
152159
"state": {
153160
Type: schema.TypeString,
154161
Computed: true,
@@ -495,6 +502,8 @@ func (s *ManagementAgentManagementAgentResourceCrud) SetData() error {
495502
s.D.Set("install_path", *s.Res.InstallPath)
496503
}
497504

505+
s.D.Set("install_type", s.Res.InstallType)
506+
498507
if s.Res.IsAgentAutoUpgradable != nil {
499508
s.D.Set("is_agent_auto_upgradable", *s.Res.IsAgentAutoUpgradable)
500509
}
@@ -523,6 +532,10 @@ func (s *ManagementAgentManagementAgentResourceCrud) SetData() error {
523532
}
524533
s.D.Set("plugin_list", pluginList)
525534

535+
if s.Res.ResourceArtifactVersion != nil {
536+
s.D.Set("resource_artifact_version", *s.Res.ResourceArtifactVersion)
537+
}
538+
526539
s.D.Set("state", s.Res.LifecycleState)
527540

528541
if s.Res.TimeCreated != nil {

0 commit comments

Comments
 (0)