Provider Docker: (#6376)

- Add option keep_locally
- Add unit test
- Add documentation
This commit is contained in:
Xavier Sellier 2016-04-27 12:18:02 -04:00 committed by Paul Stack
parent 5cdb31fec1
commit c943ed4b78
3 changed files with 46 additions and 2 deletions

View file

@ -26,6 +26,11 @@ func resourceDockerImage() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
"keep_locally": &schema.Schema{
Type: schema.TypeBool,
Optional: true,
},
},
}
}

View file

@ -63,6 +63,11 @@ func searchLocalImages(data Data, imageName string) *dc.APIImages {
func removeImage(d *schema.ResourceData, client *dc.Client) error {
var data Data
if keepLocally := d.Get("keep_locally").(bool); keepLocally {
return nil
}
if err := fetchLocalImages(&data, client); err != nil {
return err
}

View file

@ -44,9 +44,36 @@ func TestAccDockerImage_private(t *testing.T) {
})
}
func testAccDockerImageDestroy(s *terraform.State) error {
//client := testAccProvider.Meta().(*dc.Client)
func TestAccDockerImage_destroy(t *testing.T) {
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 {
if rs.Type != "docker_image" {
continue
@ -76,3 +103,10 @@ resource "docker_image" "foobar" {
keep_updated = true
}
`
const testAccDockerImageKeepLocallyConfig = `
resource "docker_image" "foobarzoo" {
name = "crux:3.1"
keep_locally = true
}
`