Make runtime configs importable

This commit is contained in:
Mikael Gibert 2018-09-14 09:13:28 +02:00
parent 35e6885c75
commit 1acfc5484a
4 changed files with 51 additions and 0 deletions

View File

@ -17,6 +17,10 @@ func resourceRuntimeconfigConfig() *schema.Resource {
Update: resourceRuntimeconfigConfigUpdate,
Delete: resourceRuntimeconfigConfigDelete,
Importer: &schema.ResourceImporter{
State: resourceRuntimeconfigConfigImport,
},
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
@ -131,6 +135,20 @@ func resourceRuntimeconfigConfigDelete(d *schema.ResourceData, meta interface{})
return nil
}
func resourceRuntimeconfigConfigImport(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
config := meta.(*Config)
parseImportId([]string{"projects/(?P<project>[^/]+)/configs/(?P<name>[^/]+)", "(?P<name>[^/]+)"}, d, config)
// Replace import id for the resource id
id, err := replaceVars(d, config, "projects/{{project}}/configs/{{name}}")
if err != nil {
return nil, fmt.Errorf("Error constructing id: %s", err)
}
d.SetId(id)
return []*schema.ResourceData{d}, nil
}
// resourceRuntimeconfigFullName turns a given project and a 'short name' for a runtime config into a full name
// (e.g. projects/my-project/configs/my-config).
func resourceRuntimeconfigFullName(project, name string) string {

View File

@ -30,6 +30,11 @@ func TestAccRuntimeconfigConfig_basic(t *testing.T) {
testAccCheckRuntimeConfigDescription(&runtimeConfig, description),
),
},
resource.TestStep{
ResourceName: "google_runtimeconfig_config.foobar",
ImportState: true,
ImportStateVerify: true,
},
},
})
}

View File

@ -14,6 +14,10 @@ func resourceRuntimeconfigVariable() *schema.Resource {
Update: resourceRuntimeconfigVariableUpdate,
Delete: resourceRuntimeconfigVariableDelete,
Importer: &schema.ResourceImporter{
State: resourceRuntimeconfigVariableImport,
},
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
@ -124,6 +128,20 @@ func resourceRuntimeconfigVariableDelete(d *schema.ResourceData, meta interface{
return nil
}
func resourceRuntimeconfigVariableImport(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
config := meta.(*Config)
parseImportId([]string{"projects/(?P<project>[^/]+)/configs/(?P<parent>[^/]+)/variables/(?P<name>[^/]+)", "(?P<parent>[^/]+)/(?P<name>[^/]+)"}, d, config)
// Replace import id for the resource id
id, err := replaceVars(d, config, "projects/{{project}}/configs/{{parent}}/variables/{{name}}")
if err != nil {
return nil, fmt.Errorf("Error constructing id: %s", err)
}
d.SetId(id)
return []*schema.ResourceData{d}, nil
}
// resourceRuntimeconfigVariableFullName turns a given project, runtime config name, and a 'short name' for a runtime
// config variable into a full name (e.g. projects/my-project/configs/my-config/variables/my-variable).
func resourceRuntimeconfigVariableFullName(project, config, name string) string {

View File

@ -34,6 +34,11 @@ func TestAccRuntimeconfigVariable_basic(t *testing.T) {
testAccCheckRuntimeconfigVariableUpdateTime("google_runtimeconfig_variable.foobar"),
),
},
resource.TestStep{
ResourceName: "google_runtimeconfig_variable.foobar",
ImportState: true,
ImportStateVerify: true,
},
},
})
}
@ -94,6 +99,11 @@ func TestAccRuntimeconfigVariable_basicValue(t *testing.T) {
testAccCheckRuntimeconfigVariableUpdateTime("google_runtimeconfig_variable.foobar"),
),
},
resource.TestStep{
ResourceName: "google_runtimeconfig_variable.foobar",
ImportState: true,
ImportStateVerify: true,
},
},
})
}