|
80 | 80 | "storage_count": acctest.Representation{RepType: acctest.Required, Create: `3`, Update: `4`}, // required for shape Exadata.X8M |
81 | 81 | } |
82 | 82 |
|
| 83 | + DatabaseCloudExadataInfrastructureX11MRepresentation = map[string]interface{}{ |
| 84 | + "availability_domain": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_availability_domains.test_availability_domains.availability_domains.0.name}`}, |
| 85 | + "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, |
| 86 | + "display_name": acctest.Representation{RepType: acctest.Required, Create: `tstExaInfra`, Update: `displayName2`}, |
| 87 | + "shape": acctest.Representation{RepType: acctest.Required, Create: `Exadata.X11M`}, |
| 88 | + "compute_count": acctest.Representation{RepType: acctest.Required, Create: `2`, Update: `3`}, |
| 89 | + "customer_contacts": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabaseCloudExadataInfrastructureCustomerContactsRepresentation}, |
| 90 | + "defined_tags": acctest.Representation{RepType: acctest.Optional, Create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, Update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`}, |
| 91 | + "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}}, |
| 92 | + "maintenance_window": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabaseCloudExadataInfrastructureMaintenanceWindowRepresentation}, |
| 93 | + "storage_count": acctest.Representation{RepType: acctest.Required, Create: `3`, Update: `4`}, |
| 94 | + "database_server_type": acctest.Representation{RepType: acctest.Optional, Create: `X11M`}, |
| 95 | + "storage_server_type": acctest.Representation{RepType: acctest.Optional, Create: `X11M-HC`}, |
| 96 | + } |
| 97 | + |
83 | 98 | DatabaseCloudExadataInfrastructureCustomerContactsRepresentation = map[string]interface{}{ |
84 | 99 | "email": acctest. Representation{ RepType: acctest. Optional, Create: `[email protected]`, Update: `[email protected]`}, |
85 | 100 | } |
@@ -547,6 +562,122 @@ func TestDatabaseCloudExadataInfrastructureResourceMVM(t *testing.T) { |
547 | 562 | }) |
548 | 563 | } |
549 | 564 |
|
| 565 | +// issue-routing-tag: database/ExaCS |
| 566 | +func TestDatabaseCloudExadataInfrastructureResourceX11M(t *testing.T) { |
| 567 | + httpreplay.SetScenario("TestDatabaseCloudExadataInfrastructureResource_basic") |
| 568 | + defer httpreplay.SaveScenario() |
| 569 | + |
| 570 | + config := acctest.ProviderTestConfig() |
| 571 | + |
| 572 | + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") |
| 573 | + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) |
| 574 | + |
| 575 | + resourceName := "oci_database_cloud_exadata_infrastructure.test_cloud_exadata_infrastructure" |
| 576 | + |
| 577 | + var resId, resId2 string |
| 578 | + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "Create with optionals" step in the test. |
| 579 | + acctest.SaveConfigContent(config+compartmentIdVariableStr+DatabaseCloudExadataInfrastructureResourceDependencies+ |
| 580 | + acctest.GenerateResourceFromRepresentationMap("oci_database_cloud_exadata_infrastructure", "test_cloud_exadata_infrastructure", acctest.Optional, acctest.Create, DatabaseCloudExadataInfrastructureRepresentation), "database", "cloudExadataInfrastructure", t) |
| 581 | + |
| 582 | + acctest.ResourceTest(t, testAccCheckDatabaseCloudExadataInfrastructureDestroy, []resource.TestStep{ |
| 583 | + // verify Create with optionals |
| 584 | + { |
| 585 | + Config: config + compartmentIdVariableStr + DatabaseCloudExadataInfrastructureResourceDependencies + |
| 586 | + acctest.GenerateResourceFromRepresentationMap("oci_database_cloud_exadata_infrastructure", "test_cloud_exadata_infrastructure", acctest.Optional, acctest.Create, DatabaseCloudExadataInfrastructureX11MRepresentation), |
| 587 | + Check: acctest.ComposeAggregateTestCheckFuncWrapper( |
| 588 | + resource.TestCheckResourceAttrSet(resourceName, "availability_domain"), |
| 589 | + resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), |
| 590 | + resource.TestCheckResourceAttr(resourceName, "compute_count", "2"), |
| 591 | + resource.TestCheckResourceAttr(resourceName, "customer_contacts.#", "1"), |
| 592 | + resource. TestCheckResourceAttr( resourceName, "customer_contacts.0.email", "[email protected]"), |
| 593 | + resource.TestCheckResourceAttr(resourceName, "display_name", "tstExaInfra"), |
| 594 | + resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), |
| 595 | + resource.TestCheckResourceAttr(resourceName, "system_tags.%", "0"), |
| 596 | + resource.TestCheckResourceAttrSet(resourceName, "id"), |
| 597 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.#", "1"), |
| 598 | + //resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.custom_action_timeout_in_mins", "10"), |
| 599 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.days_of_week.#", "1"), |
| 600 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.days_of_week.0.name", "MONDAY"), |
| 601 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.hours_of_day.#", "1"), |
| 602 | + //resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.is_custom_action_timeout_enabled", "false"), |
| 603 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.lead_time_in_weeks", "10"), |
| 604 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.months.#", "4"), |
| 605 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.months.0.name", "MAY"), |
| 606 | + //resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.patching_mode", "ROLLING"), |
| 607 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.preference", "CUSTOM_PREFERENCE"), |
| 608 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.weeks_of_month.#", "1"), |
| 609 | + resource.TestCheckResourceAttr(resourceName, "shape", "Exadata.X11M"), |
| 610 | + resource.TestCheckResourceAttr(resourceName, "database_server_type", "X11M"), |
| 611 | + resource.TestCheckResourceAttr(resourceName, "storage_server_type", "X11M-HC"), |
| 612 | + resource.TestCheckResourceAttr(resourceName, "compute_model", "ECPU"), |
| 613 | + resource.TestCheckResourceAttrSet(resourceName, "state"), |
| 614 | + resource.TestCheckResourceAttr(resourceName, "storage_count", "3"), |
| 615 | + |
| 616 | + func(s *terraform.State) (err error) { |
| 617 | + resId, err = acctest.FromInstanceState(s, resourceName, "id") |
| 618 | + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { |
| 619 | + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil { |
| 620 | + return errExport |
| 621 | + } |
| 622 | + } |
| 623 | + return err |
| 624 | + }, |
| 625 | + ), |
| 626 | + }, |
| 627 | + // verify updates to updatable parameters |
| 628 | + { |
| 629 | + Config: config + compartmentIdVariableStr + DatabaseCloudExadataInfrastructureResourceDependencies + |
| 630 | + acctest.GenerateResourceFromRepresentationMap("oci_database_cloud_exadata_infrastructure", "test_cloud_exadata_infrastructure", acctest.Optional, acctest.Update, DatabaseCloudExadataInfrastructureX11MRepresentation), |
| 631 | + Check: acctest.ComposeAggregateTestCheckFuncWrapper( |
| 632 | + resource.TestCheckResourceAttrSet(resourceName, "activated_storage_count"), |
| 633 | + resource.TestCheckResourceAttrSet(resourceName, "availability_domain"), |
| 634 | + resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), |
| 635 | + resource.TestCheckResourceAttr(resourceName, "compute_count", "3"), |
| 636 | + resource.TestCheckResourceAttrSet(resourceName, "cpu_count"), |
| 637 | + resource.TestCheckResourceAttr(resourceName, "customer_contacts.#", "1"), |
| 638 | + resource. TestCheckResourceAttr( resourceName, "customer_contacts.0.email", "[email protected]"), |
| 639 | + resource.TestCheckResourceAttrSet(resourceName, "data_storage_size_in_tbs"), |
| 640 | + resource.TestCheckResourceAttrSet(resourceName, "db_node_storage_size_in_gbs"), |
| 641 | + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"), |
| 642 | + resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), |
| 643 | + resource.TestCheckResourceAttr(resourceName, "system_tags.%", "0"), |
| 644 | + resource.TestCheckResourceAttrSet(resourceName, "id"), |
| 645 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.#", "1"), |
| 646 | + //resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.custom_action_timeout_in_mins", "11"), |
| 647 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.days_of_week.#", "1"), |
| 648 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.days_of_week.0.name", "TUESDAY"), |
| 649 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.hours_of_day.#", "1"), |
| 650 | + //resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.is_custom_action_timeout_enabled", "true"), |
| 651 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.lead_time_in_weeks", "11"), |
| 652 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.months.#", "4"), |
| 653 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.months.0.name", "JUNE"), |
| 654 | + //resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.patching_mode", "NONROLLING"), |
| 655 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.preference", "CUSTOM_PREFERENCE"), |
| 656 | + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.weeks_of_month.#", "1"), |
| 657 | + resource.TestCheckResourceAttrSet(resourceName, "max_cpu_count"), |
| 658 | + resource.TestCheckResourceAttrSet(resourceName, "max_data_storage_in_tbs"), |
| 659 | + resource.TestCheckResourceAttrSet(resourceName, "max_db_node_storage_in_gbs"), |
| 660 | + resource.TestCheckResourceAttrSet(resourceName, "max_memory_in_gbs"), |
| 661 | + resource.TestCheckResourceAttrSet(resourceName, "memory_size_in_gbs"), |
| 662 | + resource.TestCheckResourceAttr(resourceName, "shape", "Exadata.X11M"), |
| 663 | + resource.TestCheckResourceAttr(resourceName, "database_server_type", "X11M"), |
| 664 | + resource.TestCheckResourceAttr(resourceName, "storage_server_type", "X11M-HC"), |
| 665 | + resource.TestCheckResourceAttr(resourceName, "compute_model", "ECPU"), |
| 666 | + resource.TestCheckResourceAttrSet(resourceName, "state"), |
| 667 | + resource.TestCheckResourceAttr(resourceName, "storage_count", "4"), |
| 668 | + |
| 669 | + func(s *terraform.State) (err error) { |
| 670 | + resId2, err = acctest.FromInstanceState(s, resourceName, "id") |
| 671 | + if resId != resId2 { |
| 672 | + return fmt.Errorf("Resource recreated when it was supposed to be updated.") |
| 673 | + } |
| 674 | + return err |
| 675 | + }, |
| 676 | + ), |
| 677 | + }, |
| 678 | + }) |
| 679 | +} |
| 680 | + |
550 | 681 | func init() { |
551 | 682 | if acctest.DependencyGraph == nil { |
552 | 683 | acctest.InitDependencyGraph() |
|
0 commit comments