mirror of
https://github.com/kreuzwerker/terraform-provider-docker.git
synced 2025-12-24 00:29:46 -05:00
Provider Docker: (#6376)
- Add option keep_locally - Add unit test - Add documentation
This commit is contained in:
parent
5cdb31fec1
commit
c943ed4b78
3 changed files with 46 additions and 2 deletions
|
|
@ -26,6 +26,11 @@ func resourceDockerImage() *schema.Resource {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"keep_locally": &schema.Schema{
|
||||||
|
Type: schema.TypeBool,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,11 @@ func searchLocalImages(data Data, imageName string) *dc.APIImages {
|
||||||
|
|
||||||
func removeImage(d *schema.ResourceData, client *dc.Client) error {
|
func removeImage(d *schema.ResourceData, client *dc.Client) error {
|
||||||
var data Data
|
var data Data
|
||||||
|
|
||||||
|
if keepLocally := d.Get("keep_locally").(bool); keepLocally {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
if err := fetchLocalImages(&data, client); err != nil {
|
if err := fetchLocalImages(&data, client); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,36 @@ func TestAccDockerImage_private(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAccDockerImageDestroy(s *terraform.State) error {
|
func TestAccDockerImage_destroy(t *testing.T) {
|
||||||
//client := testAccProvider.Meta().(*dc.Client)
|
resource.Test(t, resource.TestCase{
|
||||||
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
|
Providers: testAccProviders,
|
||||||
|
CheckDestroy: func(s *terraform.State) error {
|
||||||
|
for _, rs := range s.RootModule().Resources {
|
||||||
|
if rs.Type != "docker_image" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
client := testAccProvider.Meta().(*dc.Client)
|
||||||
|
_, err := client.InspectImage(rs.Primary.Attributes["latest"])
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
Steps: []resource.TestStep{
|
||||||
|
resource.TestStep{
|
||||||
|
Config: testAccDockerImageKeepLocallyConfig,
|
||||||
|
Check: resource.ComposeTestCheckFunc(
|
||||||
|
resource.TestMatchResourceAttr("docker_image.foobarzoo", "latest", contentDigestRegexp),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func testAccDockerImageDestroy(s *terraform.State) error {
|
||||||
for _, rs := range s.RootModule().Resources {
|
for _, rs := range s.RootModule().Resources {
|
||||||
if rs.Type != "docker_image" {
|
if rs.Type != "docker_image" {
|
||||||
continue
|
continue
|
||||||
|
|
@ -76,3 +103,10 @@ resource "docker_image" "foobar" {
|
||||||
keep_updated = true
|
keep_updated = true
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
const testAccDockerImageKeepLocallyConfig = `
|
||||||
|
resource "docker_image" "foobarzoo" {
|
||||||
|
name = "crux:3.1"
|
||||||
|
keep_locally = true
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue