Skip to content

Commit

Permalink
containermetadata: extract duplicated parsing code
Browse files Browse the repository at this point in the history
  • Loading branch information
adnxn committed Oct 4, 2017
1 parent 4640038 commit 508d9e5
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
30 changes: 19 additions & 11 deletions agent/containermetadata/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,7 @@ func (manager *metadataManager) Create(config *docker.Config, hostConfig *docker

// Acquire the metadata then write it in JSON format to the file
metadata := manager.parseMetadataAtContainerCreate(taskARN, containerName)
data, err := json.MarshalIndent(metadata, "", "\t")
if err != nil {
return fmt.Errorf("create metadata for task %s container %s: %v", taskARN, containerName, err)
}

// Write the metadata to file
err = writeToMetadataFile(manager.osWrap, manager.ioutilWrap, data, taskARN, containerName, manager.dataDir)
err = manager.marshalAndWrite(metadata, taskARN, containerName)
if err != nil {
return err
}
Expand Down Expand Up @@ -148,12 +142,11 @@ func (manager *metadataManager) Update(dockerID string, taskARN string, containe

// Acquire the metadata then write it in JSON format to the file
metadata := manager.parseMetadata(dockerContainer, taskARN, containerName)
data, err := json.MarshalIndent(metadata, "", "\t")
err = manager.marshalAndWrite(metadata, taskARN, containerName)
if err != nil {
return fmt.Errorf("update metadata for task %s container %s: %v", taskARN, containerName, err)
return err
}

return writeToMetadataFile(manager.osWrap, manager.ioutilWrap, data, taskARN, containerName, manager.dataDir)
return nil
}

// Clean removes the metadata files of all containers associated with a task
Expand All @@ -164,3 +157,18 @@ func (manager *metadataManager) Clean(taskARN string) error {
}
return manager.osWrap.RemoveAll(metadataPath)
}

func (manager *metadataManager) marshalAndWrite(metadata Metadata, taskARN string, containerName string) error {
data, err := json.MarshalIndent(metadata, "", "\t")
if err != nil {
return fmt.Errorf("create metadata for task %s container %s: %v", taskARN, containerName, err)
}

// Write the metadata to file
err = writeToMetadataFile(manager.osWrap, manager.ioutilWrap, data, taskARN, containerName, manager.dataDir)
if err != nil {
return err
}

return nil
}
3 changes: 2 additions & 1 deletion agent/containermetadata/write_metadata_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (

const (
mountPoint = "/opt/ecs/metadata"
tempFile = "temp_metadata_file"
)

// createBindsEnv will do the appropriate formatting to add a new mount in a container's HostConfig
Expand All @@ -51,7 +52,7 @@ func writeToMetadataFile(osWrap oswrapper.OS, ioutilWrap ioutilwrapper.IOUtil, d
}
metadataFileName := filepath.Join(metadataFileDir, metadataFile)

temp, err := ioutilWrap.TempFile(metadataFileDir, "temp_metadata_file")
temp, err := ioutilWrap.TempFile(metadataFileDir, tempFile)
if err != nil {
return err
}
Expand Down

0 comments on commit 508d9e5

Please sign in to comment.