diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..fc83fdc24 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,30 @@ +language: go +# see https://docs.travis-ci.com/user/reference/overview/#Virtualization-environments +# for the detail +# sudo: requried +dist: trusty + +before_install: + - sudo apt-get update -qq + +#install: +# - go get . +# - go get github.com/golang/lint/golint + +#before_script: +# - go vet . +# - golint . | xargs -r false + +script: + - ./build + - mkdir -p ${TRAVIS_BUILD_DIR}/dist + - tar cvfz ${TRAVIS_BUILD_DIR}/dist/multus-cni_amd64.tar.gz --warning=no-file-changed --exclude="dist" --exclude="vendor" . + +after_success: + # put build tgz to bintray + - curl -T ${TRAVIS_BUILD_DIR}/dist/multus-cni_amd64.tar.gz -u${BINTRAY_USER}:${BINTRAY_APIKEY} https://api.bintray.com/content/redhat-nfvpe/multus-cni-crd-snapshots/snapshot/snapshot-${TRAVIS_COMMIT}/multus-cni_amd64-${TRAVIS_COMMIT}.tar.gz + # publish uploaded file + - curl -X POST -u${BINTRAY_USER}:${BINTRAY_APIKEY} https://api.bintray.com/content/redhat-nfvpe/multus-cni-crd-snapshots/snapshot/snapshot-${TRAVIS_COMMIT}/publish + # put it in bintray download list + - sleep 20 + - "curl -X PUT -H 'Accept: application/json' -H 'Content-type: application/json' -u${BINTRAY_USER}:${BINTRAY_APIKEY} https://api.bintray.com/file_metadata/redhat-nfvpe/multus-cni-crd-snapshots/multus-cni_amd64-${TRAVIS_COMMIT}.tar.gz -d '{\"list_in_downloads\":true}'" diff --git a/multus/multus.go b/multus/multus.go index 143f89eea..db7b341b7 100644 --- a/multus/multus.go +++ b/multus/multus.go @@ -304,21 +304,15 @@ func parsePodNetworkObject(podnetwork string) ([]map[string]interface{}, error) return nil, fmt.Errorf("parsePodNetworkObject: pod annotation not having \"network\" as key, refer Multus README.md for the usage guide") } - - // Determine if the string is JSON format, or comma-delimited. - if (isJSON(podnetwork)) { - // Use the JSON as-is - if err := json.Unmarshal([]byte(podnetwork), &podNet); err != nil { - return nil, fmt.Errorf("parsePodNetworkObject: failed to load pod network err: %v | pod network: %v", err, podnetwork) - } - } else { - // Build a map from the comma delimited items. + // Parse the podnetwork string, and assume it is JSON. + if err := json.Unmarshal([]byte(podnetwork), &podNet); err != nil { + // If the JSON parsing fails, assume it is comma delimited. commaItems := strings.Split(podnetwork, ",") + // Build a map from the comma delimited items. for i := range commaItems { - netName := strings.TrimSpace(commaItems[i]) - atItems := strings.Split(netName, "@") + atItems := strings.Split(commaItems[i], "@") m := make(map[string]interface{}) - m["name"] = atItems[0] + m["name"] = strings.TrimSpace(atItems[0]) if len(atItems) == 2 { m["interfaceRequest"] = atItems[1] }