Skip to content

Commit f158c53

Browse files
committed
resolve some review comments
Signed-off-by: Stephanie <[email protected]>
1 parent 818dfab commit f158c53

File tree

2 files changed

+43
-37
lines changed

2 files changed

+43
-37
lines changed

main.go

+12-13
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,27 @@ func main() {
2020
}
2121
}
2222

23-
//ParseDevfile to parse devfile from library
24-
func ParseDevfile(devfileLocation string) (parser.DevfileObj, error) {
25-
26-
devfile, err := devfilepkg.ParseAndValidate(devfileLocation)
27-
return devfile, err
28-
}
29-
3023
func parserTest() {
31-
var devfile parser.DevfileObj
32-
var err error
24+
var args parser.ParserArgs
3325
if len(os.Args) > 1 {
3426
if strings.HasPrefix(os.Args[1], "http") {
35-
devfile, err = devfilepkg.ParseFromURLAndValidate(os.Args[1])
27+
args = parser.ParserArgs{
28+
URL: os.Args[1],
29+
}
3630
} else {
37-
devfile, err = ParseDevfile(os.Args[1])
31+
args = parser.ParserArgs{
32+
Path: os.Args[1],
33+
}
3834
}
3935
fmt.Println("parsing devfile from " + os.Args[1])
4036

4137
} else {
42-
devfile, err = ParseDevfile("devfile.yaml")
43-
fmt.Println("parsing devfile from " + devfile.Ctx.GetAbsPath())
38+
args = parser.ParserArgs{
39+
Path: "devfile.yaml",
40+
}
41+
fmt.Println("parsing devfile from ./devfile.yaml")
4442
}
43+
devfile, err := devfilepkg.ParseDevfileAndValidate(args)
4544
if err != nil {
4645
fmt.Println(err)
4746
} else {

pkg/devfile/parser/parse.go

+31-24
Original file line numberDiff line numberDiff line change
@@ -54,38 +54,45 @@ func parseDevfile(d DevfileObj, flattenedDevfile bool) (DevfileObj, error) {
5454
return d, nil
5555
}
5656

57+
// ParserArgs is the struct to pass into parser functions which contains required info for parsing devfile.
58+
// It accepts devfile path, devfile URL or devfile content in []byte format.
59+
// Path is a relative or absolute devfile path.
60+
// URL is the URL address of the specific devfile.
61+
// Data is the devfile content in []byte format.
62+
// FlattenedDevfile defines if the returned devfileObj is flattened content (true) or raw content (false), the value is default to be true.
63+
// RegistryURLs is a list of registry hosts which parse should pull parent devfile from.
5764
type ParserArgs struct {
58-
path string
59-
url string
60-
data []byte
61-
flattenedDevfile *bool // default to true
62-
registryURLs []string
65+
Path string
66+
URL string
67+
Data []byte
68+
FlattenedDevfile *bool // default to true
69+
RegistryURLs []string
6370
}
6471

6572
// ParseDevfile func populates the devfile data, parses and validates the devfile integrity.
6673
// Creates devfile context and runtime objects
6774
func ParseDevfile(args ParserArgs) (d DevfileObj, err error) {
68-
if args.data != nil {
75+
if args.Data != nil {
6976
d.Ctx = devfileCtx.DevfileCtx{}
70-
err = d.Ctx.SetDevfileContentFromBytes(args.data)
77+
err = d.Ctx.SetDevfileContentFromBytes(args.Data)
7178
if err != nil {
7279
return d, errors.Wrap(err, "failed to set devfile content from bytes")
7380
}
74-
} else if args.path != "" {
75-
d.Ctx = devfileCtx.NewDevfileCtx(args.path)
76-
} else if args.url != "" {
77-
d.Ctx = devfileCtx.NewURLDevfileCtx(args.url)
81+
} else if args.Path != "" {
82+
d.Ctx = devfileCtx.NewDevfileCtx(args.Path)
83+
} else if args.URL != "" {
84+
d.Ctx = devfileCtx.NewURLDevfileCtx(args.URL)
7885
} else {
7986
return d, errors.Wrap(err, "the devfile source is not provided")
8087
}
8188

82-
if args.registryURLs != nil {
83-
d.Ctx.SetRegistryURLs(args.registryURLs)
89+
if args.RegistryURLs != nil {
90+
d.Ctx.SetRegistryURLs(args.RegistryURLs)
8491
}
8592

8693
flattenedDevfile := true
87-
if args.flattenedDevfile != nil {
88-
flattenedDevfile = *args.flattenedDevfile
94+
if args.FlattenedDevfile != nil {
95+
flattenedDevfile = *args.FlattenedDevfile
8996
}
9097

9198
return populateAndParseDevfile(d, flattenedDevfile)
@@ -167,7 +174,7 @@ func parseParentAndPlugin(d DevfileObj) (err error) {
167174
return err
168175
}
169176
} else {
170-
return fmt.Errorf("parent URI or registry id undefined, currently only URI and Id are suppported")
177+
return fmt.Errorf("parent URI or parent Id undefined, currently only URI and Id are suppported")
171178
}
172179

173180
parentWorkspaceContent := parentDevfileObj.Data.GetDevfileWorkspace()
@@ -253,33 +260,33 @@ func parseFromURI(uri string, curDevfileCtx devfileCtx.DevfileCtx) (DevfileObj,
253260
return populateAndParseDevfile(d, true)
254261
}
255262

256-
func parseFromRegistry(registryId, registryURL string, curDevfileCtx devfileCtx.DevfileCtx) (DevfileObj, error) {
263+
func parseFromRegistry(parentId, registryURL string, curDevfileCtx devfileCtx.DevfileCtx) (DevfileObj, error) {
257264
if registryURL != "" {
258-
devfileContent, err := getDevfileFromRegistry(registryId, registryURL)
265+
devfileContent, err := getDevfileFromRegistry(parentId, registryURL)
259266
if err != nil {
260267
return DevfileObj{}, err
261268
}
262-
return ParseDevfile(ParserArgs{data: devfileContent, registryURLs: curDevfileCtx.GetRegistryURLs()})
269+
return ParseDevfile(ParserArgs{Data: devfileContent, RegistryURLs: curDevfileCtx.GetRegistryURLs()})
263270
} else if curDevfileCtx.GetRegistryURLs() != nil {
264271
for _, registry := range curDevfileCtx.GetRegistryURLs() {
265-
devfileContent, err := getDevfileFromRegistry(registryId, registry)
272+
devfileContent, err := getDevfileFromRegistry(parentId, registry)
266273
if devfileContent != nil && err == nil {
267-
return ParseDevfile(ParserArgs{data: devfileContent, registryURLs: curDevfileCtx.GetRegistryURLs()})
274+
return ParseDevfile(ParserArgs{Data: devfileContent, RegistryURLs: curDevfileCtx.GetRegistryURLs()})
268275
}
269276
}
270277
} else {
271278
return DevfileObj{}, fmt.Errorf("failed to parse from registry, registry URL is not provided")
272279
}
273280

274-
return DevfileObj{}, fmt.Errorf("failed to get registry id: %s from registry URLs provided", registryId)
281+
return DevfileObj{}, fmt.Errorf("failed to get parent Id: %s from registry URLs provided", parentId)
275282
}
276283

277-
func getDevfileFromRegistry(registryId, registryURL string) ([]byte, error) {
284+
func getDevfileFromRegistry(parentId, registryURL string) ([]byte, error) {
278285
if !strings.HasPrefix(registryURL, "http://") && !strings.HasPrefix(registryURL, "https://") {
279286
registryURL = fmt.Sprintf("http://%s", registryURL)
280287
}
281288
param := util.HTTPRequestParams{
282-
URL: fmt.Sprintf("%s/devfiles/%s", registryURL, registryId),
289+
URL: fmt.Sprintf("%s/devfiles/%s", registryURL, parentId),
283290
}
284291
return util.HTTPGetRequest(param, 0)
285292
}

0 commit comments

Comments
 (0)