{"action":"created","comment":{"url":"https://api.github.com/repos/xcat2/xcat-core/pulls/comments/42343133","id":42343133,"diff_hunk":"@@ -0,0 +1,318 @@\n+#!/bin/sh\n+#\n+# This is the second version of Mellanox IB driver installation sample script\n+# This is also the version we recommend to use right now.\n+# What are changed in this version\n+#    1. The usage interface is changed, using command line arguments instead of using environment attribute\n+#    2. The way of downloading Mellanox OFED files.  \n+#    3. Some structure of code\n+#\n+# For AIX:\n+#    TBD\n+# For Linux:\n+#    - For full-disk installs:\n+#        - Copy Mellanox OFED ISO to node\n+#        - Install IB rpms\n+#    - For diskless images:\n+#        - Copy the packages to the images.\n+#        - Install IB rpms\n+#\n+#usage:\n+#\n+#      Copy the xCAT mlnxofed_ib_install.v2 script file to postscripts directory and rename to  mlnxofed_ib_install: \n+#      cp /opt/xcat/share/xcat/ib/scripts/Mellanox/mlnxofed_ib_install.v2 /install/postscripts/mlnxofed_ib_install\n+#\n+#      Prepare Mellanox OFED ISO file and save it into any subdirectory under /install. \n+#\n+#   1. install the ofed driver for diskfull node\n+#      [NOTE] step 1.1-1.2 are only needed by redhat and sles\n+#      1.1  copy the pkglist to the custom directory: \n+#         cp /opt/xcat/share/xcat/install/<ostype>/compute.<osver>.<arch>.pkglist /install/custom/install/<ostype>/compute.<osver>.<arch>.pkglist\n+#         Edit your /install/custom/install/<ostype>/compute.<osver>.<arch>.pkglist and add: \n+#             #INCLUDE:/opt/xcat/share/xcat/ib/netboot/<ostype>/ib.<osver>.<arch>.pkglist#\n+#      1.2 Make the related osimage use the customized pkglist. \n+#          chdef  -t osimage -o <osver>-<arch>-install-compute pkglist=/install/custom/install/<ostype>/compute.<osver>.<arch>.pkglist\n+#      1.3 set mlnxofed_ib_install as postbootscripts for the target node. assign necessary attribute for mlnxofed_ib_install at same time.\n+#      chdef <node> -p postbootscripts=\"mlnxofed_ib_install -p /install/<path>/<OFED.ISO>\"\n+#      [NOTE] The default options input into Mellanox are '--without-32bit --without-fw-update --force'\n+#             you can appoint the options by yourslef with '-m' option of mlnxofed_ib_install\n+#             In order to distinguish which options are tranfered to Mellanox and which options are belong to mlnxofed_ib_install, any options wanted to transfered to Mellanox must follow behind -m and end with \"-end-\", for example:\n+#      chdef <node> -p postbootscripts=\"mlnxofed_ib_install -p /install/<path>/<OFED.ISO> -m --without-32bit --add-kernel-support --force -end-\"   \n+#      1.4 do the diskfull installation\n+#           nodeset <node> osimage=<osimage>  ......\n+#\n+#   2. install the ofed driver for diskless images:\n+#      [NOTE] step 2.1 is only needed by redhat and sles\n+#      2.1 copy the pkglist to the custom directory: \n+#            cp /opt/xcat/share/xcat/netboot/<ostype>/compute.<osver>.<arch>.pkglist /install/custom/netboot/<ostype>/compute.<osver>.<arch>.pkglist\n+#         Edit your /install/custom/netboot/<ostype>/<profile>.pkglist and add: \n+#          #INCLUDE:/opt/xcat/share/xcat/ib/netboot/<ostype>/ib.<osver>.<arch>.pkglist#\n+#       2.2 Add to postinstall scripts\n+#       Edit your /install/custom/netboot/<ostype>/<profile>.postinstall and add: \n+#          /install/postscripts/mlnxofed_ib_install -p /install/<path>/<OFED.ISO> -n genimage  -i $1\n+#       2.3 Make sure the related osimage use the customized pkglist and customized compute.postinsall \n+#          lsdef -t osimage -o  <osver>-<arch>-netboot-compute\n+#       if not, change it:\n+#           chdef  -t osimage -o <osver>-<arch>-netboot-compute pkglist=/install/custom/netboot/<ostype>/compute.<osver>.<arch>.pkglist postinstall=/install/custom/netboot/<ostype>/<profile>.postinstall\n+#       2.4 run genimage\n+#       genimage <osver>-<arch>-netboot-compute\n+#\n+\n+#set -x\n+\n+OS=\"$(uname)\"\n+if [ \"$OS\" = \"Linux\" ]; then\n+    str_dir_name=\"${0%/*}\"\n+    . \"$str_dir_name/xcatlib.sh\"\n+fi\n+\n+#--------------------------------------------------------\n+declare -a MLNXOFED_OPTS\n+\n+function usage() {\n+    echo \"Usage: mlnxofed_ib_install [-attribute]\"\n+    echo \"  attribute include:\"\n+    echo \"    -h: print this help message\"\t\t\n+    echo \"    -p: the path where OFED file is saved. this is necessary attribute\"\n+    echo \"    -m: the options inputted into mlnxofedinstall script, defualt value are --without-32bit --without-fw-update --force\"\n+    echo \"    -i: the image root path. this is necessary attribute in diskless scenario\"\n+    echo \"    -n: nodeset status, the value are one of install, boot or genimage\"\n+}\n+\n+while [ \"$#\" -gt \"0\" ]\n+do\n+    case \"$1\" in\n+        \"-p\")\n+            shift\n+            OFED_PATH=\"$1\"\n+            ;;\n+        \"-m\")\n+            shift\n+            while [ \"-end-\" != \"$1\" ]\n+            do\n+                MLNXOFED_OPTS=(\"${MLNXOFED_OPTS[@]}\" \"$1\")\n+                shift\n+            done\n+            ;;\n+        \"-i\")\n+            shift\n+            IMGROOTPATH=\"$1\"\n+            ;;\n+        \"-n\")\n+            shift\n+            NODESETSTATE=\"$1\"\n+            ;;\n+        \"-h\")\n+            usage\n+            exit 0\n+            ;;\n+        *)\n+            echo \"unsupport attribute $1\"\n+            exit 0\n+            ;;\n+    esac\n+    shift\n+done\n+\n+if [ -z \"$OFED_PATH\" ]; then\n+    echo \"[Error] Without Mellanox OFED file path, please assign correct path\"\n+    exit 1\n+fi\n+\n+if [ \"$NODESETSTATE\" = \"genimage\"  -a  -z \"$IMGROOTPATH\" ]; then\n+    echo \"[Error] this is for diskless installation, please assign correct diskless image root path\"\n+    exit 1\n+fi\n+\n+[ \"${#MLNXOFED_OPTS}\" = 0 ] && MLNXOFED_OPTS=(--without-32bit --without-fw-update --force)\n+\n+OFED_DIR=${OFED_PATH%/*}\n+OFED_NAME=${OFED_PATH##*/}\n+\n+echo \"Mellanox OFED file path is $OFED_DIR\"\n+echo \"Mellanox OFED file is $OFED_NAME\"\n+echo \"Mellanox OFED options are ${MLNXOFED_OPTS[@]}\"\n+echo \"image root path is $IMGROOTPATH\"\n+echo \"NODESETSTATE is $NODESETSTATE\"\n+\n+if [ \"$OS\" != \"AIX\" ]; then\n+    if [ \"$NODESETSTATE\" = \"install\" -o \"$NODESETSTATE\" = \"boot\" ]; then\n+        \n+        #if the host is ubuntn, need to do some network check and configuration\n+        if grep -q Ubuntu /etc/os-release 2>/dev/null\n+        then\n+            nodename=`hostname`\n+            echo \"$nodename 's operating system is Ubuntu.\"\n+            echo \"If you want to install Mellanox_OFED in $nodename, $nodename must have ability to access www.ports.ubuntu.com\"\n+            echo -n \"checking $nodename 's ability to access www.ports.ubuntu.com...........\"\n+            if ping -c 3 www.ports.ubuntu.com > /dev/null;then \n+                echo \"[OK]\"\n+            else\n+                echo \"[Failed]\"\n+                echo \"please make your $nodename has ability to access www.ports.ubuntu.com\"\n+                exit 1\n+            fi\n+                            \n+            cp /etc/apt/sources.list /etc/apt/sources.list.bak\n+            sed -i \"/deb http:\\\\/\\\\/ports.ubuntu.com\\\\/ubuntu-ports\\\\/ trusty main/d\"  /etc/apt/sources.list\n+            sed -i \"/deb http:\\\\/\\\\/ports.ubuntu.com\\\\/ubuntu-ports\\\\/ trusty-updates main/d\"  /etc/apt/sources.list\n+            sed -i \"/deb http:\\\\/\\\\/ports.ubuntu.com\\\\/ubuntu-ports\\\\/ trusty universe/d\" /etc/apt/sources.list\n+            sed -i \"/deb http:\\\\/\\\\/ports.ubuntu.com\\\\/ubuntu-ports\\\\/ trusty-updates universe/d\" /etc/apt/sources.list\n+                    \n+            cat <<-EOF >>/etc/apt/sources.list\n+deb http://ports.ubuntu.com/ubuntu-ports/ trusty main\n+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main\n+deb http://ports.ubuntu.com/ubuntu-ports/ trusty universe\n+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates universe\n+EOF\n+                \n+            apt-get clean all\n+            sleep 1\n+            apt-get update\n+        fi\n+\t\t\n+        #  Being run from a stateful install postscript\n+        #  Copy rpms directly from the xCAT management node and install\n+        rm -rf -- /tmp/ofed\n+        mkdir -p /tmp/ofed/mountpoint\n+        cd /tmp/ofed/\n+        echo \"Downloading Mellanox OFED file $OFED_NAME form http://$MASTER/$OFED_DIR ..........\"\n+        num=`echo \"$OFED_DIR\" | awk -F\"/\" '{if($NF==\"\"){print NF-2}else{print NF-1}}'`\n+        wget -l inf -N --waitretry=10 --random-wait --retry-connrefused -t 10 -T 60 -nH --cut-dirs=$num --no-parent \"http://$MASTER/$OFED_DIR/$OFED_NAME\" 2> /tmp/wget.log\n+        if [ ! -f \"/tmp/ofed/$OFED_NAME\" ]; then\n+            echo \"[Failed]\"\n+            rm -rf -- /tmp/ofed\n+            exit 1\n+        fi\n+        echo \"[OK]\"\n+\t\t\n+        echo \"Mounting Mellanox OFED file $OFED_NAME .........\"\n+        mount -o loop \"/tmp/ofed/$OFED_NAME\"  /tmp/ofed/mountpoint\n+        if [ ! -f \"/tmp/ofed/mountpoint/mlnxofedinstall\" ]; then\n+            echo \"[Failed]\"\n+            rm -rf -- /tmp/ofed\n+            exit 1\n+        fi\t\t\n+        echo \"[OK]\"\n+\n+        echo \"Start Mellanox OFED installation .........\"\n+        env -i \"PATH=${PATH}\" /tmp/ofed/mountpoint/mlnxofedinstall ${MLNXOFED_OPTS[@]}\n+        umount /tmp/ofed/mountpoint\n+        rm -rf -- /tmp/ofed\n+\t\t\n+        #force openibd load all modules in need, restart again\n+        sleep 1\n+        service openibd restart\n+    fi\n+\n+    if [[ $NODESETSTATE == \"genimage\" ]]; then\n+        rm -rf -- \"$IMGROOTPATH/tmp/ofed\"\n+        mkdir -p \"$IMGROOTPATH/tmp/ofed/mountpoint\"\n+        cp -r \"$OFED_DIR/$OFED_NAME\" \"$IMGROOTPATH/tmp/ofed/\"\n+   \n+        echo \"Mounting Mellanox OFED file $OFED_NAME .........\"\n+        mount -o loop \"$IMGROOTPATH/tmp/ofed/$OFED_NAME\"  \"$IMGROOTPATH/tmp/ofed/mountpoint\"\n+        if [ ! -f \"$IMGROOTPATH/tmp/ofed/mountpoint/mlnxofedinstall\" ]; then\n+            echo \"[Failed]\"\n+            rm -rf -- \"$IMGROOTPATH/tmp/ofed\"\n+            exit 1\n+        fi\t\t\n+        echo \"[OK]\"\n+\n+        echo \"Start Mellanox OFED installation .........\"\n+\t\t\n+        # Being called from <image>.postinstall script\n+        # Assume we are on the same machine\n+        if [ -f /etc/SuSE-release ]; then\n+            mount --bind  /dev  \"$IMGROOTPATH/dev/\"\n+            mount --bind  /sys  \"$IMGROOTPATH/sys\"\n+            mount --bind  /proc \"$IMGROOTPATH/proc\"\n+            chroot \"$IMGROOTPATH\" rpm -e --noscripts --allmatches mlnx-ofa_kernel-kmp-default 2>/dev/null \n+            chroot \"$IMGROOTPATH\" rpm -e --nodeps --allmatches libibverbs 2>/dev/null \n+            chroot \"$IMGROOTPATH\" env -i \"PATH=${PATH}\" /tmp/ofed/mountpoint/mlnxofedinstall ${MLNXOFED_OPTS[@]}\n+            umount \"$IMGROOTPATH/dev/\"\n+            umount \"$IMGROOTPATH/sys\"\n+            umount \"$IMGROOTPATH/proc\"\n+        elif grep -q Ubuntu /etc/os-release 2>/dev/null; then\n+            nodename=`hostname`\n+            echo \"$nodename 's operating system is Ubuntu.\"\n+            echo \"If you want to install Mellanox_OFED in $nodename, $nodename must have ability to access www.ports.ubuntu.com\"\n+            echo -n \"checking $nodename 's ability to access www.ports.ubuntu.com...........\"\n+            if ping -c 3 www.ports.ubuntu.com > /dev/null; then ","path":"xCAT-server/share/xcat/ib/scripts/Mellanox/mlnxofed_ib_install.v2","position":241,"original_position":241,"commit_id":"600fa8fa00a40c93f4d3dea747c92efd12d7823b","original_commit_id":"600fa8fa00a40c93f4d3dea747c92efd12d7823b","user":{"login":"neo954","id":12424088,"avatar_url":"https://avatars.githubusercontent.com/u/12424088?v=3","gravatar_id":"","url":"https://api.github.com/users/neo954","html_url":"https://github.com/neo954","followers_url":"https://api.github.com/users/neo954/followers","following_url":"https://api.github.com/users/neo954/following{/other_user}","gists_url":"https://api.github.com/users/neo954/gists{/gist_id}","starred_url":"https://api.github.com/users/neo954/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neo954/subscriptions","organizations_url":"https://api.github.com/users/neo954/orgs","repos_url":"https://api.github.com/users/neo954/repos","events_url":"https://api.github.com/users/neo954/events{/privacy}","received_events_url":"https://api.github.com/users/neo954/received_events","type":"User","site_admin":false},"body":"Use ``ports.ubuntu.com`` instead of ``www.ports.ubuntu.com``","created_at":"2015-10-19T07:48:46Z","updated_at":"2015-10-19T07:48:46Z","html_url":"https://github.com/xcat2/xcat-core/pull/239#discussion_r42343133","pull_request_url":"https://api.github.com/repos/xcat2/xcat-core/pulls/239","_links":{"self":{"href":"https://api.github.com/repos/xcat2/xcat-core/pulls/comments/42343133"},"html":{"href":"https://github.com/xcat2/xcat-core/pull/239#discussion_r42343133"},"pull_request":{"href":"https://api.github.com/repos/xcat2/xcat-core/pulls/239"}}},"pull_request":{"url":"https://api.github.com/repos/xcat2/xcat-core/pulls/239","id":46504116,"html_url":"https://github.com/xcat2/xcat-core/pull/239","diff_url":"https://github.com/xcat2/xcat-core/pull/239.diff","patch_url":"https://github.com/xcat2/xcat-core/pull/239.patch","issue_url":"https://api.github.com/repos/xcat2/xcat-core/issues/239","number":239,"state":"open","locked":false,"title":"The version 2 of mlnxofed_ib_install","user":{"login":"hu-weihua","id":7370626,"avatar_url":"https://avatars.githubusercontent.com/u/7370626?v=3","gravatar_id":"","url":"https://api.github.com/users/hu-weihua","html_url":"https://github.com/hu-weihua","followers_url":"https://api.github.com/users/hu-weihua/followers","following_url":"https://api.github.com/users/hu-weihua/following{/other_user}","gists_url":"https://api.github.com/users/hu-weihua/gists{/gist_id}","starred_url":"https://api.github.com/users/hu-weihua/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hu-weihua/subscriptions","organizations_url":"https://api.github.com/users/hu-weihua/orgs","repos_url":"https://api.github.com/users/hu-weihua/repos","events_url":"https://api.github.com/users/hu-weihua/events{/privacy}","received_events_url":"https://api.github.com/users/hu-weihua/received_events","type":"User","site_admin":false},"body":"This is the second version of Mellanox IB driver installation sample script\r\nThis is also the version we recommend to use right now.\r\nWhat are changed in this version\r\n1. The usage interface is changed, using command line options instead of using environment attribute\r\n2. The way of downloading Mellanox OFED files.  \r\n3. Some structure of code\r\n","created_at":"2015-10-01T09:53:43Z","updated_at":"2015-10-19T07:48:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7cc6682a95511e33714f410edde9e3bdbbea8262","assignee":{"login":"neo954","id":12424088,"avatar_url":"https://avatars.githubusercontent.com/u/12424088?v=3","gravatar_id":"","url":"https://api.github.com/users/neo954","html_url":"https://github.com/neo954","followers_url":"https://api.github.com/users/neo954/followers","following_url":"https://api.github.com/users/neo954/following{/other_user}","gists_url":"https://api.github.com/users/neo954/gists{/gist_id}","starred_url":"https://api.github.com/users/neo954/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neo954/subscriptions","organizations_url":"https://api.github.com/users/neo954/orgs","repos_url":"https://api.github.com/users/neo954/repos","events_url":"https://api.github.com/users/neo954/events{/privacy}","received_events_url":"https://api.github.com/users/neo954/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/xcat2/xcat-core/milestones/3","html_url":"https://github.com/xcat2/xcat-core/milestones/2.11","labels_url":"https://api.github.com/repos/xcat2/xcat-core/milestones/3/labels","id":1237674,"number":3,"title":"2.11","description":"xCAT 2.11","creator":{"login":"ligc","id":4415329,"avatar_url":"https://avatars.githubusercontent.com/u/4415329?v=3","gravatar_id":"","url":"https://api.github.com/users/ligc","html_url":"https://github.com/ligc","followers_url":"https://api.github.com/users/ligc/followers","following_url":"https://api.github.com/users/ligc/following{/other_user}","gists_url":"https://api.github.com/users/ligc/gists{/gist_id}","starred_url":"https://api.github.com/users/ligc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ligc/subscriptions","organizations_url":"https://api.github.com/users/ligc/orgs","repos_url":"https://api.github.com/users/ligc/repos","events_url":"https://api.github.com/users/ligc/events{/privacy}","received_events_url":"https://api.github.com/users/ligc/received_events","type":"User","site_admin":false},"open_issues":25,"closed_issues":42,"state":"open","created_at":"2015-08-03T06:33:22Z","updated_at":"2015-10-16T15:37:01Z","due_on":"2015-12-03T16:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/xcat2/xcat-core/pulls/239/commits","review_comments_url":"https://api.github.com/repos/xcat2/xcat-core/pulls/239/comments","review_comment_url":"https://api.github.com/repos/xcat2/xcat-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xcat2/xcat-core/issues/239/comments","statuses_url":"https://api.github.com/repos/xcat2/xcat-core/statuses/600fa8fa00a40c93f4d3dea747c92efd12d7823b","head":{"label":"hu-weihua:infiniband","ref":"infiniband","sha":"600fa8fa00a40c93f4d3dea747c92efd12d7823b","user":{"login":"hu-weihua","id":7370626,"avatar_url":"https://avatars.githubusercontent.com/u/7370626?v=3","gravatar_id":"","url":"https://api.github.com/users/hu-weihua","html_url":"https://github.com/hu-weihua","followers_url":"https://api.github.com/users/hu-weihua/followers","following_url":"https://api.github.com/users/hu-weihua/following{/other_user}","gists_url":"https://api.github.com/users/hu-weihua/gists{/gist_id}","starred_url":"https://api.github.com/users/hu-weihua/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hu-weihua/subscriptions","organizations_url":"https://api.github.com/users/hu-weihua/orgs","repos_url":"https://api.github.com/users/hu-weihua/repos","events_url":"https://api.github.com/users/hu-weihua/events{/privacy}","received_events_url":"https://api.github.com/users/hu-weihua/received_events","type":"User","site_admin":false},"repo":{"id":40430481,"name":"xcat-core","full_name":"hu-weihua/xcat-core","owner":{"login":"hu-weihua","id":7370626,"avatar_url":"https://avatars.githubusercontent.com/u/7370626?v=3","gravatar_id":"","url":"https://api.github.com/users/hu-weihua","html_url":"https://github.com/hu-weihua","followers_url":"https://api.github.com/users/hu-weihua/followers","following_url":"https://api.github.com/users/hu-weihua/following{/other_user}","gists_url":"https://api.github.com/users/hu-weihua/gists{/gist_id}","starred_url":"https://api.github.com/users/hu-weihua/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hu-weihua/subscriptions","organizations_url":"https://api.github.com/users/hu-weihua/orgs","repos_url":"https://api.github.com/users/hu-weihua/repos","events_url":"https://api.github.com/users/hu-weihua/events{/privacy}","received_events_url":"https://api.github.com/users/hu-weihua/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hu-weihua/xcat-core","description":"Code repo for xCAT core packages","fork":true,"url":"https://api.github.com/repos/hu-weihua/xcat-core","forks_url":"https://api.github.com/repos/hu-weihua/xcat-core/forks","keys_url":"https://api.github.com/repos/hu-weihua/xcat-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hu-weihua/xcat-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hu-weihua/xcat-core/teams","hooks_url":"https://api.github.com/repos/hu-weihua/xcat-core/hooks","issue_events_url":"https://api.github.com/repos/hu-weihua/xcat-core/issues/events{/number}","events_url":"https://api.github.com/repos/hu-weihua/xcat-core/events","assignees_url":"https://api.github.com/repos/hu-weihua/xcat-core/assignees{/user}","branches_url":"https://api.github.com/repos/hu-weihua/xcat-core/branches{/branch}","tags_url":"https://api.github.com/repos/hu-weihua/xcat-core/tags","blobs_url":"https://api.github.com/repos/hu-weihua/xcat-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hu-weihua/xcat-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hu-weihua/xcat-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/hu-weihua/xcat-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hu-weihua/xcat-core/statuses/{sha}","languages_url":"https://api.github.com/repos/hu-weihua/xcat-core/languages","stargazers_url":"https://api.github.com/repos/hu-weihua/xcat-core/stargazers","contributors_url":"https://api.github.com/repos/hu-weihua/xcat-core/contributors","subscribers_url":"https://api.github.com/repos/hu-weihua/xcat-core/subscribers","subscription_url":"https://api.github.com/repos/hu-weihua/xcat-core/subscription","commits_url":"https://api.github.com/repos/hu-weihua/xcat-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/hu-weihua/xcat-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/hu-weihua/xcat-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/hu-weihua/xcat-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/hu-weihua/xcat-core/contents/{+path}","compare_url":"https://api.github.com/repos/hu-weihua/xcat-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hu-weihua/xcat-core/merges","archive_url":"https://api.github.com/repos/hu-weihua/xcat-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hu-weihua/xcat-core/downloads","issues_url":"https://api.github.com/repos/hu-weihua/xcat-core/issues{/number}","pulls_url":"https://api.github.com/repos/hu-weihua/xcat-core/pulls{/number}","milestones_url":"https://api.github.com/repos/hu-weihua/xcat-core/milestones{/number}","notifications_url":"https://api.github.com/repos/hu-weihua/xcat-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hu-weihua/xcat-core/labels{/name}","releases_url":"https://api.github.com/repos/hu-weihua/xcat-core/releases{/id}","created_at":"2015-08-09T08:43:37Z","updated_at":"2015-08-09T08:43:43Z","pushed_at":"2015-10-18T09:34:11Z","git_url":"git://github.com/hu-weihua/xcat-core.git","ssh_url":"git@github.com:hu-weihua/xcat-core.git","clone_url":"https://github.com/hu-weihua/xcat-core.git","svn_url":"https://github.com/hu-weihua/xcat-core","homepage":null,"size":180578,"stargazers_count":0,"watchers_count":0,"language":"Perl","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"xcat2:master","ref":"master","sha":"136b9319f3ac952261f40738e6f83e87c58285c6","user":{"login":"xcat2","id":10124414,"avatar_url":"https://avatars.githubusercontent.com/u/10124414?v=3","gravatar_id":"","url":"https://api.github.com/users/xcat2","html_url":"https://github.com/xcat2","followers_url":"https://api.github.com/users/xcat2/followers","following_url":"https://api.github.com/users/xcat2/following{/other_user}","gists_url":"https://api.github.com/users/xcat2/gists{/gist_id}","starred_url":"https://api.github.com/users/xcat2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xcat2/subscriptions","organizations_url":"https://api.github.com/users/xcat2/orgs","repos_url":"https://api.github.com/users/xcat2/repos","events_url":"https://api.github.com/users/xcat2/events{/privacy}","received_events_url":"https://api.github.com/users/xcat2/received_events","type":"Organization","site_admin":false},"repo":{"id":27747508,"name":"xcat-core","full_name":"xcat2/xcat-core","owner":{"login":"xcat2","id":10124414,"avatar_url":"https://avatars.githubusercontent.com/u/10124414?v=3","gravatar_id":"","url":"https://api.github.com/users/xcat2","html_url":"https://github.com/xcat2","followers_url":"https://api.github.com/users/xcat2/followers","following_url":"https://api.github.com/users/xcat2/following{/other_user}","gists_url":"https://api.github.com/users/xcat2/gists{/gist_id}","starred_url":"https://api.github.com/users/xcat2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xcat2/subscriptions","organizations_url":"https://api.github.com/users/xcat2/orgs","repos_url":"https://api.github.com/users/xcat2/repos","events_url":"https://api.github.com/users/xcat2/events{/privacy}","received_events_url":"https://api.github.com/users/xcat2/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xcat2/xcat-core","description":"Code repo for xCAT core packages","fork":false,"url":"https://api.github.com/repos/xcat2/xcat-core","forks_url":"https://api.github.com/repos/xcat2/xcat-core/forks","keys_url":"https://api.github.com/repos/xcat2/xcat-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xcat2/xcat-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xcat2/xcat-core/teams","hooks_url":"https://api.github.com/repos/xcat2/xcat-core/hooks","issue_events_url":"https://api.github.com/repos/xcat2/xcat-core/issues/events{/number}","events_url":"https://api.github.com/repos/xcat2/xcat-core/events","assignees_url":"https://api.github.com/repos/xcat2/xcat-core/assignees{/user}","branches_url":"https://api.github.com/repos/xcat2/xcat-core/branches{/branch}","tags_url":"https://api.github.com/repos/xcat2/xcat-core/tags","blobs_url":"https://api.github.com/repos/xcat2/xcat-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xcat2/xcat-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xcat2/xcat-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/xcat2/xcat-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xcat2/xcat-core/statuses/{sha}","languages_url":"https://api.github.com/repos/xcat2/xcat-core/languages","stargazers_url":"https://api.github.com/repos/xcat2/xcat-core/stargazers","contributors_url":"https://api.github.com/repos/xcat2/xcat-core/contributors","subscribers_url":"https://api.github.com/repos/xcat2/xcat-core/subscribers","subscription_url":"https://api.github.com/repos/xcat2/xcat-core/subscription","commits_url":"https://api.github.com/repos/xcat2/xcat-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/xcat2/xcat-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/xcat2/xcat-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/xcat2/xcat-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/xcat2/xcat-core/contents/{+path}","compare_url":"https://api.github.com/repos/xcat2/xcat-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xcat2/xcat-core/merges","archive_url":"https://api.github.com/repos/xcat2/xcat-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xcat2/xcat-core/downloads","issues_url":"https://api.github.com/repos/xcat2/xcat-core/issues{/number}","pulls_url":"https://api.github.com/repos/xcat2/xcat-core/pulls{/number}","milestones_url":"https://api.github.com/repos/xcat2/xcat-core/milestones{/number}","notifications_url":"https://api.github.com/repos/xcat2/xcat-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xcat2/xcat-core/labels{/name}","releases_url":"https://api.github.com/repos/xcat2/xcat-core/releases{/id}","created_at":"2014-12-09T03:21:50Z","updated_at":"2015-08-24T13:01:14Z","pushed_at":"2015-10-19T03:10:37Z","git_url":"git://github.com/xcat2/xcat-core.git","ssh_url":"git@github.com:xcat2/xcat-core.git","clone_url":"https://github.com/xcat2/xcat-core.git","svn_url":"https://github.com/xcat2/xcat-core","homepage":null,"size":186281,"stargazers_count":19,"watchers_count":19,"language":"Perl","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":30,"mirror_url":null,"open_issues_count":59,"forks":30,"open_issues":59,"watchers":19,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xcat2/xcat-core/pulls/239"},"html":{"href":"https://github.com/xcat2/xcat-core/pull/239"},"issue":{"href":"https://api.github.com/repos/xcat2/xcat-core/issues/239"},"comments":{"href":"https://api.github.com/repos/xcat2/xcat-core/issues/239/comments"},"review_comments":{"href":"https://api.github.com/repos/xcat2/xcat-core/pulls/239/comments"},"review_comment":{"href":"https://api.github.com/repos/xcat2/xcat-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xcat2/xcat-core/pulls/239/commits"},"statuses":{"href":"https://api.github.com/repos/xcat2/xcat-core/statuses/600fa8fa00a40c93f4d3dea747c92efd12d7823b"}}}}