Skip to content

Commit 07c2ab0

Browse files
committed
Support management agent service
1 parent b4ba025 commit 07c2ab0

File tree

73 files changed

+7300
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+7300
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- Support for patching in ADB-D: datasource `oci_database_autonomous_container_patches` for autonomous container databases
55
- Support for patching in ADB-D: Retrieving patch info from patchId
66
- Support for Policy based Request/Response transformation
7+
- Support for Management agent service
78

89
## 3.91.0 (September 02, 2020)
910

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_id" {}
10+
variable "managed_agent_id" {}
11+
12+
provider "oci" {
13+
tenancy_ocid = "${var.tenancy_ocid}"
14+
user_ocid = "${var.user_ocid}"
15+
fingerprint = "${var.fingerprint}"
16+
private_key_path = "${var.private_key_path}"
17+
region = "${var.region}"
18+
}
19+
20+
resource "oci_management_agent_management_agent" "test_management_agent" {
21+
#Required
22+
managed_agent_id = "${var.managed_agent_id}"
23+
24+
#Optional
25+
display_name = "TF_test_agent"
26+
deploy_plugins_id = ["${data.oci_management_agent_management_agent_plugins.test_management_agent_plugins.management_agent_plugins.0.id}"]
27+
}
28+
29+
data "oci_management_agent_management_agents" "test_management_agents" {
30+
#Required
31+
compartment_id = "${var.compartment_id}"
32+
}
33+
34+
resource "oci_management_agent_management_agent_install_key" "test_management_agent_install_key" {
35+
#Required
36+
compartment_id = "${var.compartment_id}"
37+
38+
#Optional
39+
allowed_key_install_count = "200"
40+
display_name = "displayName"
41+
time_expires = "2021-05-27T17:27:44.398Z"
42+
}
43+
44+
data "oci_management_agent_management_agent_install_keys" "test_management_agent_install_keys" {
45+
#Required
46+
compartment_id = "${var.compartment_id}"
47+
}
48+
49+
data "oci_management_agent_management_agent_install_key" "test_management_agent_install_key" {
50+
#Required
51+
management_agent_install_key_id = "${oci_management_agent_management_agent_install_key.test_management_agent_install_key.id}"
52+
}
53+
54+
data "oci_management_agent_management_agent_plugins" "test_management_agent_plugins" {
55+
#Required
56+
compartment_id = "${var.compartment_id}"
57+
}
58+
59+
data "oci_management_agent_management_agent_images" "test_management_agent_images" {
60+
#Required
61+
compartment_id = "${var.compartment_id}"
62+
}

oci/management_agent_clients.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Copyright (c) 2017, 2020, 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+
oci_management_agent "github.com/oracle/oci-go-sdk/managementagent"
8+
9+
oci_common "github.com/oracle/oci-go-sdk/common"
10+
)
11+
12+
func init() {
13+
RegisterOracleClient("oci_management_agent.ManagementAgentClient", &OracleClient{initClientFn: initManagementagentManagementAgentClient})
14+
}
15+
16+
func initManagementagentManagementAgentClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient) (interface{}, error) {
17+
client, err := oci_management_agent.NewManagementAgentClientWithConfigurationProvider(configProvider)
18+
if err != nil {
19+
return nil, err
20+
}
21+
err = configureClient(&client.BaseClient)
22+
if err != nil {
23+
return nil, err
24+
}
25+
return &client, nil
26+
}
27+
28+
func (m *OracleClients) managementAgentClient() *oci_management_agent.ManagementAgentClient {
29+
return m.GetClient("oci_management_agent.ManagementAgentClient").(*oci_management_agent.ManagementAgentClient)
30+
}
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
// Copyright (c) 2017, 2020, 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/helper/schema"
10+
oci_management_agent "github.com/oracle/oci-go-sdk/managementagent"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_management_agent_management_agent", ManagementAgentManagementAgentDataSource())
15+
}
16+
17+
func ManagementAgentManagementAgentDataSource() *schema.Resource {
18+
fieldMap := make(map[string]*schema.Schema)
19+
fieldMap["management_agent_id"] = &schema.Schema{
20+
Type: schema.TypeString,
21+
Required: true,
22+
}
23+
return GetSingularDataSourceItemSchema(ManagementAgentManagementAgentResource(), fieldMap, readSingularManagementAgentManagementAgent)
24+
}
25+
26+
func readSingularManagementAgentManagementAgent(d *schema.ResourceData, m interface{}) error {
27+
sync := &ManagementAgentManagementAgentDataSourceCrud{}
28+
sync.D = d
29+
sync.Client = m.(*OracleClients).managementAgentClient()
30+
31+
return ReadResource(sync)
32+
}
33+
34+
type ManagementAgentManagementAgentDataSourceCrud struct {
35+
D *schema.ResourceData
36+
Client *oci_management_agent.ManagementAgentClient
37+
Res *oci_management_agent.GetManagementAgentResponse
38+
}
39+
40+
func (s *ManagementAgentManagementAgentDataSourceCrud) VoidState() {
41+
s.D.SetId("")
42+
}
43+
44+
func (s *ManagementAgentManagementAgentDataSourceCrud) Get() error {
45+
request := oci_management_agent.GetManagementAgentRequest{}
46+
47+
if managementAgentId, ok := s.D.GetOkExists("management_agent_id"); ok {
48+
tmp := managementAgentId.(string)
49+
request.ManagementAgentId = &tmp
50+
}
51+
52+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "management_agent")
53+
54+
response, err := s.Client.GetManagementAgent(context.Background(), request)
55+
if err != nil {
56+
return err
57+
}
58+
59+
s.Res = &response
60+
return nil
61+
}
62+
63+
func (s *ManagementAgentManagementAgentDataSourceCrud) SetData() error {
64+
if s.Res == nil {
65+
return nil
66+
}
67+
68+
s.D.SetId(*s.Res.Id)
69+
70+
if s.Res.CompartmentId != nil {
71+
s.D.Set("compartment_id", *s.Res.CompartmentId)
72+
}
73+
74+
if s.Res.DefinedTags != nil {
75+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
76+
}
77+
78+
if s.Res.DisplayName != nil {
79+
s.D.Set("display_name", *s.Res.DisplayName)
80+
}
81+
82+
s.D.Set("freeform_tags", s.Res.FreeformTags)
83+
84+
if s.Res.Host != nil {
85+
s.D.Set("host", *s.Res.Host)
86+
}
87+
88+
if s.Res.InstallKeyId != nil {
89+
s.D.Set("install_key_id", *s.Res.InstallKeyId)
90+
}
91+
92+
if s.Res.InstallPath != nil {
93+
s.D.Set("install_path", *s.Res.InstallPath)
94+
}
95+
96+
if s.Res.IsAgentAutoUpgradable != nil {
97+
s.D.Set("is_agent_auto_upgradable", *s.Res.IsAgentAutoUpgradable)
98+
}
99+
100+
if s.Res.LifecycleDetails != nil {
101+
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
102+
}
103+
104+
if s.Res.PlatformName != nil {
105+
s.D.Set("platform_name", *s.Res.PlatformName)
106+
}
107+
108+
s.D.Set("platform_type", s.Res.PlatformType)
109+
110+
if s.Res.PlatformVersion != nil {
111+
s.D.Set("platform_version", *s.Res.PlatformVersion)
112+
}
113+
114+
pluginList := []interface{}{}
115+
for _, item := range s.Res.PluginList {
116+
pluginList = append(pluginList, ManagementAgentPluginDetailsToMap(item))
117+
}
118+
s.D.Set("plugin_list", pluginList)
119+
120+
s.D.Set("state", s.Res.LifecycleState)
121+
122+
if s.Res.TimeCreated != nil {
123+
s.D.Set("time_created", s.Res.TimeCreated.String())
124+
}
125+
126+
if s.Res.TimeLastHeartbeat != nil {
127+
s.D.Set("time_last_heartbeat", s.Res.TimeLastHeartbeat.String())
128+
}
129+
130+
if s.Res.TimeUpdated != nil {
131+
s.D.Set("time_updated", s.Res.TimeUpdated.String())
132+
}
133+
134+
if s.Res.Version != nil {
135+
s.D.Set("version", *s.Res.Version)
136+
}
137+
138+
return nil
139+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Copyright (c) 2017, 2020, 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/helper/resource"
11+
"github.com/hashicorp/terraform/terraform"
12+
13+
"github.com/terraform-providers/terraform-provider-oci/httpreplay"
14+
)
15+
16+
var (
17+
managementAgentImageDataSourceRepresentation = map[string]interface{}{
18+
"compartment_id": Representation{repType: Required, create: `${var.compartment_id}`},
19+
"state": Representation{repType: Optional, create: `ACTIVE`},
20+
}
21+
22+
ManagementAgentImageResourceConfig = ""
23+
)
24+
25+
func TestManagementAgentManagementAgentImageResource_basic(t *testing.T) {
26+
httpreplay.SetScenario("TestManagementAgentManagementAgentImageResource_basic")
27+
defer httpreplay.SaveScenario()
28+
29+
provider := testAccProvider
30+
config := testProviderConfig()
31+
32+
compartmentId := getEnvSettingWithBlankDefault("compartment_ocid")
33+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
34+
35+
datasourceName := "data.oci_management_agent_management_agent_images.test_management_agent_images"
36+
37+
resource.Test(t, resource.TestCase{
38+
PreCheck: func() { testAccPreCheck(t) },
39+
Providers: map[string]terraform.ResourceProvider{
40+
"oci": provider,
41+
},
42+
Steps: []resource.TestStep{
43+
// verify datasource
44+
{
45+
Config: config +
46+
generateDataSourceFromRepresentationMap("oci_management_agent_management_agent_images", "test_management_agent_images", Required, Create, managementAgentImageDataSourceRepresentation) +
47+
compartmentIdVariableStr + ManagementAgentImageResourceConfig,
48+
Check: resource.ComposeAggregateTestCheckFunc(
49+
resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
50+
51+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.#"),
52+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.checksum"),
53+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.id"),
54+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.object_url"),
55+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.platform_name"),
56+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.platform_type"),
57+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.size"),
58+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.state"),
59+
resource.TestCheckResourceAttrSet(datasourceName, "management_agent_images.0.version"),
60+
),
61+
},
62+
},
63+
})
64+
}

0 commit comments

Comments
 (0)