apparmor: add DumpDefaultProfile
This function will be used by nerdctl for printing the default AppArmor profile: `nerdctl system inspect apparmor-profile` Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
		| @@ -19,6 +19,7 @@ | |||||||
| package apparmor | package apparmor | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"bytes" | ||||||
| 	"context" | 	"context" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"os" | 	"os" | ||||||
| @@ -79,3 +80,17 @@ func LoadDefaultProfile(name string) error { | |||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // DumpDefaultProfiles dumps the default profile with the given name. | ||||||
|  | func DumpDefaultProfile(name string) (string, error) { | ||||||
|  | 	p, err := loadData(name) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var buf bytes.Buffer | ||||||
|  | 	if err := generate(p, &buf); err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return buf.String(), nil | ||||||
|  | } | ||||||
|   | |||||||
| @@ -104,3 +104,16 @@ Copyright 2009-2018 Canonical Ltd. | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func TestDumpDefaultProfile(t *testing.T) { | ||||||
|  | 	if _, err := getVersion(); err != nil { | ||||||
|  | 		t.Skipf("AppArmor not available: %+v", err) | ||||||
|  | 	} | ||||||
|  | 	name := "test-dump-default-profile" | ||||||
|  | 	prof, err := DumpDefaultProfile(name) | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatal(err) | ||||||
|  | 	} | ||||||
|  | 	t.Logf("Generated profile %q", name) | ||||||
|  | 	t.Log(prof) | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Akihiro Suda
					Akihiro Suda