Merge "add build scripts and amend jjb for prediction project"
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>
Thu, 30 Apr 2015 14:47:33 +0000 (14:47 +0000)
committerGerrit Code Review <gerrit@172.30.200.206>
Thu, 30 Apr 2015 14:47:33 +0000 (14:47 +0000)
20 files changed:
jjb/functest/build-docu-verify.sh
jjb/functest/build-upload-docu.sh
jjb/functest/functest.yml
jjb/genesis/build-docu-verify.sh [new file with mode: 0644]
jjb/genesis/build-docu.sh [deleted file]
jjb/genesis/build-upload-docu.sh [new file with mode: 0644]
jjb/genesis/genesis-docs.yml
jjb/genesis/genesis-fuel.yml
jjb/octopus/build-docu-verify.sh
jjb/octopus/build-upload-docu.sh
jjb/opnfvdocs/docu-build.sh [moved from jjb/opnfvdocs/build-upload-docu.sh with 60% similarity]
jjb/opnfvdocs/docu-verify.sh [new file with mode: 0644]
jjb/opnfvdocs/opnfvdocs.yml
jjb/parser/docu-build.sh [new file with mode: 0644]
jjb/parser/docu-verify.sh [moved from jjb/opnfvdocs/build-docu-verify.sh with 80% similarity]
jjb/parser/parser.yml
jjb/pharos/build-docu-verify.sh
jjb/pharos/build-upload-docu.sh
jjb/pharos/pharos.yml
test.html [deleted file]

index e8f34a7..c692226 100644 (file)
@@ -1,4 +1,7 @@
 #!/bin/bash
+set -e
+set -o pipefail
+
 project="functest"
 export PATH=$PATH:/usr/local/bin/
 
index bd5abdb..ee45d68 100644 (file)
@@ -1,4 +1,7 @@
 #!/bin/bash
+set -e
+set -o pipefail
+
 project="functest"
 export PATH=$PATH:/usr/local/bin/
 
@@ -40,3 +43,22 @@ for file in "${{files[@]}}"; do
 
 done
 
+images=()
+while read -r -d ''; do
+        images+=("$REPLY")
+done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
+
+for img in "${{images[@]}}"; do
+
+        # uploading found images
+        echo "uploading $img"
+        cat "$img" | gsutil cp -L gsoutput.txt - \
+        gs://artifacts.opnfv.org/"$project"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
+
index 8ef9269..a4466f8 100644 (file)
@@ -42,7 +42,7 @@
 
     project-type: freestyle
 
-    node: orange-build
+    node: ericsson-test
 
     logrotate:
         daysToKeep: 30
 - job-template:
     name: 'functest-daily-{stream}'
 
+    node: master
+
     # Job template for daily builders
     #
     # Required Variables:
 - job-template:
     name: 'functest-verify'
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
 - job-template:
     name: 'functest-merge'
 
+    node: master
+
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
diff --git a/jjb/genesis/build-docu-verify.sh b/jjb/genesis/build-docu-verify.sh
new file mode 100644 (file)
index 0000000..06b374e
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/bash
+set -e
+set -o pipefail
+
+project="genesis"
+export PATH=$PATH:/usr/local/bin/
+
+git_sha1="$(git rev-parse HEAD)"
+docu_build_date="$(date)"
+
+files=()
+while read -r -d ''; do
+       files+=("$REPLY")
+done < <(find . -type f -iname '*.rst' -print0)
+
+for file in "${{files[@]}}"; do
+
+       file_cut="${{file%.*}}"
+       gs_cp_folder="$(echo "$file"| cut -d "/" -f2,3)"
+
+       # sed part
+       sed -i "s/_sha1_/$git_sha1/g" $file
+       sed -i "s/_date_/$docu_build_date/g" $file
+
+       # rst2html part
+       echo "rst2html $file"
+       rst2html $file > $file_cut".html"
+
+       echo "rst2pdf $file"
+       rst2pdf $file -o $file_cut".pdf"
+
+done
+
diff --git a/jjb/genesis/build-docu.sh b/jjb/genesis/build-docu.sh
deleted file mode 100644 (file)
index b3869fc..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-project="genesis"
-export PATH=$PATH:/usr/local/bin/
-
-files=()
-while read -r -d ''; do
-      files+=("$REPLY")
-done < <(find . -type f -iname '*.rst' -print0)
-
-for file in "${{files[@]}}"; do
-
-  file_cut="${{file%.*}}"
-  gs_cp_folder="$(echo "$file"| cut -d "/" -f2,3)"
-
-  html_file=$file_cut".html"
-
-    echo "rst2html $file"
-    rst2html $file | gsutil cp -L gsoutput.txt - \
-    gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$html_file")
-    gsutil setmeta -h "Content-Type:text/html" \
-                   -h "Cache-Control:private, max-age=0, no-transform" \
-                   gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$html_file")
-    cat gsoutput.txt
-    rm -f gsoutput.txt
-
-  pdf_file="$file_cut"".pdf"
-
-    echo "rst2pdf $file"
-    rst2pdf "$file" -o - | gsutil cp -L gsoutput.txt - \
-    gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$pdf_file")
-    gsutil setmeta -h "Content-Type:application/pdf" \
-                   -h "Cache-Control:private, max-age=0, no-transform" \
-                   gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$pdf_file")
-    cat gsoutput.txt
-    rm -f gsoutput.txt
-
-done
-
diff --git a/jjb/genesis/build-upload-docu.sh b/jjb/genesis/build-upload-docu.sh
new file mode 100644 (file)
index 0000000..2a6bbf7
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/bash
+set -e
+set -o pipefail
+
+project="genesis"
+export PATH=$PATH:/usr/local/bin/
+
+git_sha1="$(git rev-parse HEAD)"
+docu_build_date="$(date)"
+
+files=()
+while read -r -d ''; do
+       files+=("$REPLY")
+done < <(find . -type f -iname '*.rst' -print0)
+
+for file in "${{files[@]}}"; do
+
+       file_cut="${{file%.*}}"
+       gs_cp_folder="$(echo "$file"| cut -d "/" -f2,3)"
+
+        # sed part
+        sed -i "s/_sha1_/$git_sha1/g" $file
+        sed -i "s/_date_/$docu_build_date/g" $file
+
+       # rst2html part
+       html_file=$file_cut".html"
+       echo "rst2html $file"
+       rst2html $file | gsutil cp -L gsoutput.txt - \
+       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$html_file")
+       gsutil setmeta -h "Content-Type:text/html" \
+                       -h "Cache-Control:private, max-age=0, no-transform" \
+                       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$html_file")
+       cat gsoutput.txt
+       rm -f gsoutput.txt
+
+       # rst2pdf part
+       pdf_file="$file_cut"".pdf"
+       echo "rst2pdf $file"
+       rst2pdf "$file" -o - | gsutil cp -L gsoutput.txt - \
+       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$pdf_file")
+       gsutil setmeta -h "Content-Type:application/pdf" \
+                       -h "Cache-Control:private, max-age=0, no-transform" \
+                       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder"/$(basename "$pdf_file")
+       cat gsoutput.txt
+       rm -f gsoutput.txt
+
+done
+
+images=()
+while read -r -d ''; do
+        images+=("$REPLY")
+done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
+
+for img in "${{images[@]}}"; do
+
+        # uploading found images
+        echo "uploading $img"
+        cat "$img" | gsutil cp -L gsoutput.txt - \
+        gs://artifacts.opnfv.org/"$project"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
+
index 14ef95b..21c16f7 100644 (file)
@@ -4,7 +4,8 @@
     name: genesis-docs
 
     jobs:
-        - 'genesis-build-docs'
+        - 'genesis-merge-docs'
+        - 'genesis-verify-docs'
 
     # stream:    branch with - in place of / (eg. stable-helium)
     # branch:    branch (eg. stable/helium)
@@ -18,7 +19,9 @@
 # job templates
 ########################
 - job-template:
-    name: 'genesis-build-docs'
+    name: 'genesis-merge-docs'
+
+    node: master
 
     project-type: freestyle
 
 
     builders:
         - shell:
-            !include-raw build-docu.sh
+            !include-raw build-upload-docu.sh
+
+- job-template:
+    name: 'genesis-verify-docs'
+
+    node: master
+
+    project-type: freestyle
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 40
+        artifactDaysToKeep: -1
+        artifactNumToKeep: 5
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: 'master'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - ssh-agent-credentials:
+            user: '{ssh-credentials}'
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - patchset-created-event:
+                    exclude-drafts: 'false'
+                    exclude-trivial-rebase: 'false'
+                    exclude-no-code-change: 'false'
+                - draft-published-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'recheck'
+                - comment-added-contains-event:
+                    comment-contains-value: 'reverify'
+
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: 'genesis'
+                branches:
+                    - branch-compare-type: 'ANT'
+                      branch-pattern: '**/master'
+
+    builders:
+        - shell:
+            !include-raw build-docu-verify.sh
 
index fca2db8..6662c7d 100644 (file)
@@ -9,6 +9,9 @@
         - 'genesis-fuel-verify'
         - 'genesis-fuel-merge'
         - 'genesis-fuel-daily-{stream}'
+        - 'genesis-fuel-build'
+        - 'genesis-fuel-deploy'
+        - 'genesis-fuel-test'
 
     # stream:    branch with - in place of / (eg. stable-helium)
     # branch:    branch (eg. stable/helium)
         - 'installer-upload-artifact'
         - 'installer-deploy-quick-fix'
 
+- job-template:
+    name: 'genesis-fuel-build'
+
+    project-type: freestyle
+
+    disabled: true
+
+    node: ericsson-build
+
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/genesis
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+        - string:
+            name: GERRIT_BRANCH
+            default: origin/master
+            description: "Branch to build, deploy and test."
+        - string:
+            name: GERRIT_REFSPEC
+            default: refs/heads/master
+            description: "Refspec to retrieve."
+        - string:
+            name: GS_URL
+            default: 'artifacts.opnfv.org/genesis/fuel'
+            description: "URL to Google Storage."
+        - string:
+            name: BUILD_DIRECTORY
+            default: $WORKSPACE/build_output
+            description: "Directory where the build artifact will be located upon the completion of the build."
+        - string:
+            name: CACHE_DIRECTORY
+            default: $HOME/opnfv/cache/genesis-fuel
+            description: "Cache location that is where the cache is populated and used during builds to reduce the build time."
+        - string:
+            name: ARTIFACT_VERSION
+            default: $BUILD_ID
+            description: "Version number to append to resulting ISO."
+        - string:
+            name: SKIP_BUILD
+            default: 0
+            description: "Temporary parameter for deployment testing to skip the build and run deployment only."
+
+    scm:
+        - git:
+            skip-tag: true
+            url: $GIT_BASE
+            branches:
+                - $GERRIT_BRANCH
+            refspec: $GERRIT_REFSPEC
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+            set -x
+
+            echo "Hello World!"
+
+- job-template:
+    name: 'genesis-fuel-deploy'
+
+    project-type: freestyle
+
+    disabled: true
+
+    node: opnfv-jump-1
+
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/genesis
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+        - string:
+            name: GERRIT_BRANCH
+            default: origin/master
+            description: "Branch to build, deploy and test."
+        - string:
+            name: GERRIT_REFSPEC
+            default: refs/heads/master
+            description: "Refspec to retrieve."
+        - string:
+            name: GS_URL
+            default: 'artifacts.opnfv.org/genesis/fuel'
+            description: "URL to Google Storage."
+        - string:
+            name: BUILD_DIRECTORY
+            default: $WORKSPACE/build_output
+            description: "Directory where the build artifact will be located upon the completion of the build."
+        - string:
+            name: CACHE_DIRECTORY
+            default: $HOME/opnfv/cache/genesis-fuel
+            description: "Cache location that is where the cache is populated and used during builds to reduce the build time."
+        - string:
+            name: ARTIFACT_VERSION
+            default: $BUILD_ID
+            description: "Version number to append to resulting ISO."
+        - string:
+            name: SKIP_BUILD
+            default: 0
+            description: "Temporary parameter for deployment testing to skip the build and run deployment only."
+
+    scm:
+        - git:
+            skip-tag: true
+            url: $GIT_BASE
+            branches:
+                - $GERRIT_BRANCH
+            refspec: $GERRIT_REFSPEC
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+            set -x
+
+            echo "Hello World!"
+
+- job-template:
+    name: 'genesis-fuel-test'
+
+    project-type: freestyle
+
+    disabled: false
+
+    node: ericsson-test
+
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/genesis
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+        - string:
+            name: GERRIT_BRANCH
+            default: origin/master
+            description: "Branch to build, deploy and test."
+        - string:
+            name: GERRIT_REFSPEC
+            default: refs/heads/master
+            description: "Refspec to retrieve."
+        - string:
+            name: GS_URL
+            default: 'artifacts.opnfv.org/genesis/fuel'
+            description: "URL to Google Storage."
+        - string:
+            name: BUILD_DIRECTORY
+            default: $WORKSPACE/build_output
+            description: "Directory where the build artifact will be located upon the completion of the build."
+        - string:
+            name: CACHE_DIRECTORY
+            default: $HOME/opnfv/cache/genesis-fuel
+            description: "Cache location that is where the cache is populated and used during builds to reduce the build time."
+        - string:
+            name: ARTIFACT_VERSION
+            default: $BUILD_ID
+            description: "Version number to append to resulting ISO."
+        - string:
+            name: SKIP_BUILD
+            default: 0
+            description: "Temporary parameter for deployment testing to skip the build and run deployment only."
+
+    scm:
+        - git:
+            skip-tag: true
+            url: $GIT_BASE
+            branches:
+                - $GERRIT_BRANCH
+            refspec: $GERRIT_REFSPEC
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+            set -x
+
+            echo "Hello World!"
+
 - builder:
     name: installer-build
     builders:
index 01338ef..9c288fa 100644 (file)
@@ -1,4 +1,7 @@
 #!/bin/bash
+set -e
+set -o pipefail
+
 project="octopus"
 export PATH=$PATH:/usr/local/bin/
 
index 81f875d..fdd1463 100644 (file)
@@ -1,4 +1,7 @@
 #!/bin/bash
+set -e
+set -o pipefail
+
 project="octopus"
 export PATH=$PATH:/usr/local/bin/
 
@@ -40,3 +43,22 @@ for file in "${{files[@]}}"; do
 
 done
 
+images=()
+while read -r -d ''; do
+        images+=("$REPLY")
+done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
+
+for img in "${{images[@]}}"; do
+
+        # uploading found images
+        echo "uploading $img"
+        cat "$img" | gsutil cp -L gsoutput.txt - \
+        gs://artifacts.opnfv.org/"$project"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
+
similarity index 60%
rename from jjb/opnfvdocs/build-upload-docu.sh
rename to jjb/opnfvdocs/docu-build.sh
index b743726..499bdbe 100644 (file)
@@ -1,5 +1,8 @@
 #!/bin/bash
-project="opnfvdocs"
+set -e
+set -o pipefail
+
+project="$(git remote -v | head -n1 | awk '{{print $2}}' | sed -e 's,.*:\(.*/\)\?,,' -e 's/\.git$//')"
 export PATH=$PATH:/usr/local/bin/
 
 git_sha1="$(git rev-parse HEAD)"
@@ -40,3 +43,21 @@ for file in "${{files[@]}}"; do
 
 done
 
+images=()
+while read -r -d ''; do
+        images+=("$REPLY")
+done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
+
+for img in "${{images[@]}}"; do
+
+       # uploading found images
+       echo "uploading $img"
+        cat "$img" | gsutil cp -L gsoutput.txt - \
+        gs://artifacts.opnfv.org/"$project"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
diff --git a/jjb/opnfvdocs/docu-verify.sh b/jjb/opnfvdocs/docu-verify.sh
new file mode 100644 (file)
index 0000000..f337a7f
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/bash
+set -e
+set -o pipefail
+
+project="$(git remote -v | head -n1 | awk '{{print $2}}' | sed -e 's,.*:\(.*/\)\?,,' -e 's/\.git$//')"
+export PATH=$PATH:/usr/local/bin/
+
+git_sha1="$(git rev-parse HEAD)"
+docu_build_date="$(date)"
+
+files=()
+while read -r -d ''; do
+       files+=("$REPLY")
+done < <(find * -type f -iname '*.rst' -print0)
+
+for file in "${{files[@]}}"; do
+
+       file_cut="${{file%.*}}"
+       gs_cp_folder="${{file_cut}}"
+
+       # sed part
+       sed -i "s/_sha1_/$git_sha1/g" $file
+       sed -i "s/_date_/$docu_build_date/g" $file
+
+       # rst2html part
+       echo "rst2html $file"
+       rst2html $file > $file_cut".html"
+
+       echo "rst2pdf $file"
+       rst2pdf $file -o $file_cut".pdf"
+
+done
+
index 2d39452..39e33eb 100644 (file)
@@ -16,6 +16,8 @@
 - job-template:
     name: 'opnfvdocs-daily-{stream}'
 
+    node: master
+
     # Job template for daily builders
     #
     # Required Variables:
 
     builders:
         - shell:
-            !include-raw build-upload-docu.sh
+            !include-raw docu-build.sh
 
 - job-template:
     name: 'opnfvdocs-verify'
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
 
     builders:
         - shell:
-            !include-raw build-docu-verify.sh
+            !include-raw docu-verify.sh
 
 - job-template:
     name: 'opnfvdocs-merge'
 
+    node: master
+
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
     builders:
         - shell:
-            !include-raw build-upload-docu.sh
+            !include-raw docu-build.sh
 
diff --git a/jjb/parser/docu-build.sh b/jjb/parser/docu-build.sh
new file mode 100644 (file)
index 0000000..7358118
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/bash
+set -e
+set -o pipefail
+project="$(git remote -v | head -n1 | awk '{{print $2}}' | sed -e 's,.*:\(.*/\)\?,,' -e 's/\.git$//')"
+export PATH=$PATH:/usr/local/bin/
+
+git_sha1="$(git rev-parse HEAD)"
+docu_build_date="$(date)"
+
+files=()
+while read -r -d ''; do
+       files+=("$REPLY")
+done < <(find * -type f -iname '*.rst' -print0)
+
+for file in "${{files[@]}}"; do
+
+       file_cut="${{file%.*}}"
+       gs_cp_folder="${{file_cut}}"
+
+       # sed part
+       sed -i "s/_sha1_/$git_sha1/g" $file
+       sed -i "s/_date_/$docu_build_date/g" $file
+
+       # rst2html part
+       echo "rst2html $file"
+       rst2html $file | gsutil cp -L gsoutput.txt - \
+       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder".html
+       gsutil setmeta -h "Content-Type:text/html" \
+                       -h "Cache-Control:private, max-age=0, no-transform" \
+                       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder".html
+       cat gsoutput.txt
+       rm -f gsoutput.txt
+
+       echo "rst2pdf $file"
+       rst2pdf $file -o - | gsutil cp -L gsoutput.txt - \
+       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder".pdf
+       gsutil setmeta -h "Content-Type:application/pdf" \
+                       -h "Cache-Control:private, max-age=0, no-transform" \
+                       gs://artifacts.opnfv.org/"$project"/"$gs_cp_folder".pdf
+       cat gsoutput.txt
+       rm -f gsoutput.txt
+
+done
+
+images=()
+while read -r -d ''; do
+        images+=("$REPLY)
+done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
+
+for img in "${{images[@]}}"; do
+
+        # uploading found images
+        echo "uploading $img"
+        cat "$img" | gsutil cp -L gsoutput.txt - \
+        gs://artifacts.opnfv.org/"$project"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
similarity index 80%
rename from jjb/opnfvdocs/build-docu-verify.sh
rename to jjb/parser/docu-verify.sh
index 061e46d..3221dc2 100644 (file)
@@ -1,5 +1,7 @@
 #!/bin/bash
-project="opnfvdocs"
+set -e
+set -o pipefail
+project="$(git remote -v | head -n1 | awk '{{print $2}}' | sed -e 's,.*:\(.*/\)\?,,' -e 's/\.git$//')"
 export PATH=$PATH:/usr/local/bin/
 
 git_sha1="$(git rev-parse HEAD)"
index 88c32a6..2c8a2fa 100644 (file)
@@ -33,6 +33,8 @@
 - job-template:
     name: 'parser-daily-{stream}'
 
+    node: master
+
     # Job template for daily builders
     #
     # Required Variables:
     varsetabove: '{somevar}'
 
     logrotate:
-        daysToKeep: '{build-days-to-keep}'
-        numToKeep: '{build-num-to-keep}'
-        artifactDaysToKeep: '{build-artifact-days-to-keep}'
-        artifactNumToKeep: '{build-artifact-num-to-keep}'
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
 
     parameters:
         - project-parameter:
         - test-macro
 
     builders:
-        - shell: |
-            pwd
-            find .
-            echo "Hello world from parser {somevar} daily"
+        - shell:
+            !include-raw docu-build.sh
 
     postbuilders:
         - test-macro
@@ -80,6 +80,8 @@
 - job-template:
     name: 'parser-verify'
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
                     branch-pattern: '**/master'
 
     builders:
-        - shell: |
-            pwd
-            find .
-            echo "verify logic goes here"
+        - shell:
+            !include-raw docu-verify.sh
 
 - job-template:
     name: 'parser-merge'
 
+    node: master
+
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
                       branch-pattern: '**/master'
 
     builders:
-        - shell: |
-            pwd
-            find .
-            echo "merge logic goes here"
-
-
-
-
-
+        - shell:
+            !include-raw docu-build.sh
 
index 46862d9..50d3870 100644 (file)
@@ -1,4 +1,7 @@
 #!/bin/bash
+set -e
+set -o pipefail
+
 project="pharos"
 export PATH=$PATH:/usr/local/bin/
 
index caf1021..50191e5 100644 (file)
@@ -1,4 +1,7 @@
 #!/bin/bash
+set -e
+set -o pipefail
+
 project="pharos"
 export PATH=$PATH:/usr/local/bin/
 
@@ -40,3 +43,22 @@ for file in "${{files[@]}}"; do
 
 done
 
+images=()
+while read -r -d ''; do
+        images+=("$REPLY")
+done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
+
+for img in "${{images[@]}}"; do
+
+        # uploading found images
+        echo "uploading $img"
+        cat "$img" | gsutil cp -L gsoutput.txt - \
+        gs://artifacts.opnfv.org/"$project"/"$img"
+        gsutil setmeta -h "Content-Type:image/jpeg" \
+                        -h "Cache-Control:private, max-age=0, no-transform" \
+                        gs://artifacts.opnfv.org/"$project"/"$img"
+        cat gsoutput.txt
+        rm -f gsoutput.txt
+
+done
+
index 85f03b7..8b5a012 100644 (file)
@@ -33,6 +33,8 @@
 - job-template:
     name: 'pharos-daily-{stream}'
 
+    node: master
+
     # Job template for daily builders
     #
     # Required Variables:
@@ -78,6 +80,8 @@
 - job-template:
     name: 'pharos-verify'
 
+    node: master
+
     project-type: freestyle
 
     logrotate:
 - job-template:
     name: 'pharos-merge'
 
+    node: master
+
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
diff --git a/test.html b/test.html
deleted file mode 100644 (file)
index 7fe7ce4..0000000
--- a/test.html
+++ /dev/null
@@ -1,362 +0,0 @@
-<!DOCTYPE html>
-<html lang="en" dir="ltr" class="client-nojs">
-<head>
-<meta charset="UTF-8" />
-<title>OpenStack</title>
-<meta name="generator" content="MediaWiki 1.25wmf4" />
-<link rel="shortcut icon" href="/favicon.ico" />
-<link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="OpenStack (en)" />
-<link rel="EditURI" type="application/rsd+xml" href="https://wiki.openstack.org/w/api.php?action=rsd" />
-<link rel="alternate" hreflang="x-default" href="/wiki/Main_Page" />
-<link rel="copyright" href="http://creativecommons.org/licenses/by/3.0/" />
-<link rel="alternate" type="application/atom+xml" title="OpenStack Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom" />
-<link rel="stylesheet" href="https://wiki.openstack.org/w/load.php?debug=false&amp;lang=en&amp;modules=ext.uls.nojs%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.ui.button&amp;only=styles&amp;skin=strapping&amp;*" />
-<link rel="stylesheet" href="/w/skins/strapping/bootstrap/css/bootstrap.css?303" media="screen" />
-<link rel="stylesheet" href="/w/skins/strapping/bootstrap/awesome/css/font-awesome.css?303" media="screen" />
-<link rel="stylesheet" href="/w/skins/strapping/screen.css?303" media="screen" />
-<link rel="stylesheet" href="/w/skins/strapping/theme.css?303" media="screen" /><meta name="ResourceLoaderDynamicStyles" content="" />
-<link rel="stylesheet" href="https://wiki.openstack.org/w/load.php?debug=false&amp;lang=en&amp;modules=site&amp;only=styles&amp;skin=strapping&amp;*" />
-<style>a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}
-/* cache key: openstack_wiki:resourceloader:filter:minify-css:7:d3155f57bef5c67e78be5cab96908cad */</style>
-<script src="https://wiki.openstack.org/w/load.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=strapping&amp;*"></script>
-<script>if(window.mw){
-mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Main_Page","wgTitle":"Main Page","wgCurRevisionId":73535,"wgRevisionId":73535,"wgArticleId":1126,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Main_Page","wgIsProbablyEditable":false,"wgRestrictionEdit":["sysop"],"wgRestrictionMove":["sysop"],"wgIsMainPage":true,"wgWikiEditorEnabledModules":{"toolbar":true,"dialogs":true,"hidesig":true,"preview":false,"previewDialog":false,"publish":false},"wgULSAcceptLanguageList":[],"wgULSCurrentAutonym":"English","wgCategoryTreePageCategoryOptions":"{\"mode\":0,\"hideprefix\":20,\"showcount\":true,\"namespaces\":false}"});
-}</script><script>if(window.mw){
-mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"editfont":"default","editondblclick":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":1,"extendwatchlist":1,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nickname":"","norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"rcdays":7,"rclimit":50,"rows":25,"showhiddencats":0,"shownumberswatching":1,"showtoolbar":1,"skin":"strapping","stubthreshold":0,"thumbsize":5,"underline":2,"uselivepreview":0,"usenewrc":1,"watchcreations":1,"watchdefault":1,"watchdeletion":0,"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"watchrollback":0,
-"wllimit":250,"useeditwarning":1,"prefershttps":1,"openid-show-openid":true,"openid-userinfo-update-on-login-nickname":false,"openid-userinfo-update-on-login-email":false,"openid-userinfo-update-on-login-fullname":false,"openid-userinfo-update-on-login-language":false,"openid-userinfo-update-on-login-timezone":false,"usebetatoolbar":1,"usebetatoolbar-cgd":1,"translate":0,"translate-editlangs":"default","translate-recent-groups":"","translate-sandbox":"","echo-notify-show-link":true,"echo-show-alert":true,"echo-email-frequency":0,"echo-email-format":"plain-text","echo-subscriptions-email-system":true,"echo-subscriptions-web-system":true,"echo-subscriptions-email-user-rights":true,"echo-subscriptions-web-user-rights":true,"echo-subscriptions-email-other":false,"echo-subscriptions-web-other":true,"echo-subscriptions-email-edit-user-talk":false,"echo-subscriptions-web-edit-user-talk":true,"echo-subscriptions-email-reverted":false,"echo-subscriptions-web-reverted":true,
-"echo-subscriptions-email-article-linked":false,"echo-subscriptions-web-article-linked":false,"echo-subscriptions-email-mention":false,"echo-subscriptions-web-mention":true,"uls-preferences":"","language":"en","variant-gan":"gan","variant-iu":"iu","variant-kk":"kk","variant-ku":"ku","variant-shi":"shi","variant-sr":"sr","variant-tg":"tg","variant-uz":"uz","variant-zh":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"searchNs110":false,"searchNs111":false,"searchNs828":false,"searchNs829":false,"searchNs1198":false,"searchNs1199":false,"variant":"en"});},{},{});mw.loader.implement("user.tokens",function($,jQuery){mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\"});},{},{});
-/* cache key: openstack_wiki:resourceloader:filter:minify-js:7:9103c5351c1af08715851bded530c248 */
-}</script>
-<script>if(window.mw){
-mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax","ext.uls.init","ext.uls.interface"]);
-}</script>
-<style type='text/css'>
-li#pt-openidlogin {
-background: url(/w/extensions/OpenID/skin/icons/openid-inputicon.png) top left no-repeat;
-padding-left: 20px;
-text-transform: none;
-}
-</style>
-<!--[if lt IE 7]><style type="text/css">body{behavior:url("/w/skins/strapping/csshover.min.htc")}</style><![endif]-->
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-</head>
-<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Main_Page skin-strapping action-view">
-
-<div id="userbar" class="navbar navbar-static">
-  <div class="navbar-inner">
-    <div style="width: auto;" class="container">
-
-      <div class="pull-left">
-                          <ul class="nav logo-container" role="navigation"><li id="p-logo"><a href="/wiki/Main_Page"  title="Visit the main page"><img src="https://wiki.openstack.org/w/images/thumb/c/c4/OpenStack_Logo_-_notext.png/30px-OpenStack_Logo_-_notext.png" alt="OpenStack"></a><li></ul>
-
-<!-- 0 -->
-          <ul class="nav" role="navigation">
-            <li class="dropdown" id="p-namespaces" class="vectorMenu">
-                            <a data-toggle="dropdown" class="dropdown-toggle brand" role="menu">Page <b class="caret"></b></a>
-                                                                                                      <ul aria-labelledby="Namespaces" role="menu" class="dropdown-menu" >
-
-                <li id="ca-nstab-main" class="selected"><a href="/wiki/Main_Page"  title="View the content page [c]" accesskey="c" tabindex="-1">Page</a></li><li id="ca-talk"><a href="/wiki/Talk:Main_Page"  title="Discussion about the content page [t]" accesskey="t" tabindex="-1">Discussion</a></li><li id="ca-viewsource"><a href="/w/index.php?title=Main_Page&amp;action=edit"  title="This page is protected.&#10;You can view its source [e]" accesskey="e" tabindex="-1">View source</a></li><li id="ca-history" class="collapsible"><a href="/w/index.php?title=Main_Page&amp;action=history"  title="Past revisions of this page [h]" accesskey="h" tabindex="-1">History</a></li></ul></li></ul>
-<!-- /0 -->
-
-<!-- 0 -->
-
-<!-- /0 -->
-
-<!-- 0 -->
-
-<!-- /0 -->
-
-<!-- 0 -->
-          <ul class="nav" role="navigation">
-          <li class="dropdown" id="p-Print/export" class="vectorMenu">
-          <a data-toggle="dropdown" class="dropdown-toggle" role="menu">Print/export <b class="caret"></b></a>
-          <ul aria-labelledby="Print/export" role="menu" class="dropdown-menu" >
-                <li class=""><a id="coll-create_a_book" href="/w/index.php?title=Special:Book&amp;bookcmd=book_creator&amp;referer=Main+Page">Create a book</a></li>
-                <li class=""><a id="coll-download-as-rl" href="/w/index.php?title=Special:Book&amp;bookcmd=render_article&amp;arttitle=Main+Page&amp;oldid=73535&amp;writer=rl">Download as PDF</a></li>
-                <li class=""><a id="t-print" href="/w/index.php?title=Main_Page&amp;printable=yes" title="Printable version of this page [p]" accesskey="p">Printable version</a></li>         </li>
-         </ul></ul>
-<!-- /Print/export -->
-
-<!-- 0 -->
-
-          <ul class="nav" role="navigation">
-
-            <li class="dropdown" id="p-toolbox" class="vectorMenu">
-
-              <a data-toggle="dropdown" class="dropdown-toggle" role="button">Tools <b class="caret"></b></a>
-
-              <ul aria-labelledby="Tools" role="menu" class="dropdown-menu" >
-
-                <li id="t-info"><a href="/w/index.php?title=Main_Page&amp;action=info" title="More information about this page">Page information</a></li><li id="t-permalink"><a href="/w/index.php?title=Main_Page&amp;oldid=73535" title="Permanent link to this revision of the page">Permanent link</a></li><li class="divider"></li><li id="t-specialpages"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-recentchangeslinked"><a href="/wiki/Special:RecentChangesLinked/Main_Page" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li class="divider"></li><li id="t-whatlinkshere"><a href="/wiki/Special:WhatLinksHere/Main_Page" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li>              </ul>
-
-            </li>
-
-          </ul>
-          
-<!-- /0 -->
-      </div>
-
-      <div class="pull-right">
-        
-<!-- 0 -->
-            <form class="navbar-search" action="/w/index.php" id="searchform">
-              <input id="searchInput" class="search-query" type="search" accesskey="f" title="Special:Search" placeholder="Search" name="search" value="">
-              <input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton btn hidden" />            </form>
-
-          
-<!-- /0 -->
-
-<!-- 0 -->
-          <ul class="nav pull-right" role="navigation">
-            <li class="dropdown" id="p-notifications" class="vectorMenu">
-                        </li>
-                        <li class="dropdown" id="p-createaccount" class="vectorMenu">
-              <li id="pt-createaccount"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Main+Page&amp;type=signup" title="You are encouraged to create an account and log in; however, it is not mandatory">Create account</a></li>            </li>
-            <li class="dropdown" id="p-login" class="vectorMenu">
-            <li id="pt-login"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Main+Page" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li>            </li>
-            <li class="dropdown" id="p-openidlogin" class="vectorMenu">
-            <li id="pt-openidlogin"><a href="/w/index.php?title=Special:OpenIDLogin&amp;returnto=Main_Page">Log in / create account with OpenID</a></li>            </li>
-                                    <li class="dropdown" id="p-personaltools" class="vectorMenu">
-              <a data-toggle="dropdown" class="dropdown-toggle" role="button">
-                <i class="icon-user"></i>
-                 <b class="caret"></b></a>
-              <ul aria-labelledby="Personal tools" role="menu" class="dropdown-menu" >
-              <li id="pt-uls" class="active"><a href="#" class="uls-trigger autonym">English</a></li>              </ul>
-            </li>
-                      </ul>
-          
-<!-- /0 -->
-      </div>
-
-    </div>
-  </div>
-</div>
-
-    <div id="mw-page-base" class="noprint"></div>
-    <div id="mw-head-base" class="noprint"></div>
-
-    <!-- Header -->
-    <div id="page-header" class="container signed-out">
-      <section class="span12">
-
-      
-      <ul class="navigation nav nav-pills pull-right searchform-disabled">
-
-      
-<!-- 0 -->
-
-                <li class=""><a href="http://www.openstack.org" id="n-Home" rel="nofollow">Home</a></li>
-                <li class=""><a href="http://www.openstack.org/software" id="n-Software" rel="nofollow">Software</a></li>
-                <li class=""><a href="http://www.openstack.org/user-stories" id="n-User-Stories" rel="nofollow">User Stories</a></li>
-                <li class=""><a href="http://www.openstack.org/community" id="n-Community" rel="nofollow">Community</a></li>
-                <li class=""><a href="http://www.openstack.org/profile" id="n-Profile" rel="nofollow">Profile</a></li>
-                <li class=""><a href="http://www.openstack.org/blog" id="n-Blog" rel="nofollow">Blog</a></li>
-                <li class=""><a href="http://wiki.openstack.org" id="n-Wiki" rel="nofollow">Wiki</a></li>
-                <li class=""><a href="http://docs.openstack.org" id="n-Documentation" rel="nofollow">Documentation</a></li>
-<!-- /coll-print_export -->
-
-      </ul>
-
-    </section>
-    </div>
-
-    
-    
-    <!-- content -->
-    <section id="content" class="mw-body container 0">
-      <div id="top"></div>
-      <div id="mw-js-message" style="display:none;"></div>
-            <!-- bodyContent -->
-      <div id="bodyContent">
-                        <!-- jumpto -->
-        <div id="jump-to-nav" class="mw-jump">
-          Jump to: <a href="#mw-head">navigation</a>,
-          <a href="#p-search">search</a>
-        </div>
-        <!-- /jumpto -->
-        
-        <!-- innerbodycontent -->
-                  <div id="innerbodycontent" class="row nolayout"><div class="offset1 span10">
-            <h1 id="firstHeading" class="firstHeading page-header">
-              <span dir="auto">Main Page</span>
-            </h1>
-            <!-- subtitle -->
-            <div id="contentSub" ></div>
-            <!-- /subtitle -->
-                        <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div id="mf-index">
-<table border="0" width="100%"><tr><td width="20%" align="center">
-<p><a href="/wiki/File:Openstack-vertical-small.png" class="image"><img alt="Openstack-vertical-small.png" src="/w/images/5/53/Openstack-vertical-small.png" width="216" height="216" /></a>
-</p>
-</td><td>
-<p><b>The OpenStack Mission:</b> to produce the ubiquitous Open Source Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.
-</p><p>OpenStack is <a href="/wiki/Open" title="Open">open</a> source, <a href="/wiki/Open" title="Open">openly</a> designed, <a href="/wiki/Open" title="Open">openly</a> developed by an <a href="/wiki/Open" title="Open">open</a> community.
-</p>
-</td></tr>
-</table>
-<table border="0" width="100%">
-<tr valign="top"><td width="33%">
-<h4><span class="mw-headline" id="Getting_started">Getting started</span></h4>
-<ul><li> Read official <a rel="nofollow" class="external text" href="http://docs.openstack.org/">documentation</a></li>
-<li> Ask us questions on <a rel="nofollow" class="external text" href="http://ask.openstack.org/">Ask OpenStack</a></li>
-<li> Talk to us on our <a href="/wiki/IRC" title="IRC">IRC channels</a></li>
-<li> Join the conversation on our <a href="/wiki/Mailing_Lists" title="Mailing Lists">Mailing Lists</a></li>
-<li> All OpenStack <a href="/wiki/Releases" title="Releases">releases</a> and release notes</li>
-<li> <b>Get the <a href="/wiki/Getting_The_Code" title="Getting The Code">source code</a></b></li>
-<li> Give OpenStack <a rel="nofollow" class="external text" href="http://www.openstack.org/software/start/">a trial run</a></li>
-<li> Watch <a href="/wiki/Demo_Videos" title="Demo Videos">demo videos</a></li>
-<li> Go back to <a rel="nofollow" class="external text" href="http://www.openstack.org">main OpenStack website</a></li></ul>
-</td><td width="33%">
-<h4><span class="mw-headline" id="Contribute_to_OpenStack">Contribute to OpenStack</span></h4>
-<ul><li> <b><a href="/wiki/How_To_Contribute" title="How To Contribute">How To Contribute</a></b></li>
-<li> <a href="/wiki/Release_Cycle" title="Release Cycle">Explanation of the Release cycle</a></li>
-<li> See the <a href="/wiki/Current_release_schedule" title="Current release schedule" class="mw-redirect">current release cycle schedule</a></li>
-<li> <b>How to <a rel="nofollow" class="external text" href="http://docs.openstack.org/infra/manual/developers.html">submit changes</a></b></li>
-<li> <a rel="nofollow" class="external text" href="https://review.openstack.org/">Code reviews (Gerrit)</a></li>
-<li> <a rel="nofollow" class="external text" href="http://docs.openstack.org/infra/manual/developers.html#peer-review">Guidelines for code reviewers</a></li>
-<li> <a rel="nofollow" class="external text" href="http://status.openstack.org/zuul/">Gate system status (Zuul)</a></li>
-<li> <a rel="nofollow" class="external text" href="http://status.openstack.org/release/">Status of current development release</a></li>
-<li> How to use Launchpad <a href="/wiki/Bugs" title="Bugs">Bugs</a> and <a href="/wiki/Blueprints" title="Blueprints">Blueprints</a></li>
-<li> <a href="/wiki/How_To_Use_The_Wiki" title="How To Use The Wiki">How to use this wiki</a></li></ul>
-</td><td width="33%">
-<h4><span class="mw-headline" id="Community">Community</span></h4>
-<ul><li> <a href="/wiki/Open" title="Open">Open</a> - What openness means to us</li>
-<li> <a href="/wiki/Governance" title="Governance">Governance</a> - How OpenStack is governed</li>
-<li> <a href="/wiki/Meetings" title="Meetings">Online Meetings</a></li>
-<li> <a href="/wiki/Summit" title="Summit">Design Summits</a></li>
-<li> Mid-cycle <a href="/wiki/Sprints" title="Sprints">Sprints</a></li>
-<li> <a href="/wiki/OpenStack_User_Groups" title="OpenStack User Groups">OpenStack User Groups</a></li>
-<li> <a rel="nofollow" class="external text" href="http://www.openstack.org/blog/category/newsletter/">OpenStack Blog</a>, with <a rel="nofollow" class="external text" href="http://www.openstack.org/blog/category/newsletter/">weekly newsletters</a></li>
-<li> <a rel="nofollow" class="external text" href="http://planet.openstack.org/">Planet OpenStack</a> - Blogs about OpenStack</li>
-<li> <a href="/wiki/New_home" title="New home">Categorized index</a> of pages on this wiki</li></ul>
-</td></tr></table>
-<hr />
-<table border="0" width="100%"><tr><td align="center" width="20%">
-<p><a href="/wiki/File:Openstack-compute-icon.png" class="image"><img alt="Openstack-compute-icon.png" src="/w/images/2/25/Openstack-compute-icon.png" width="111" height="91" /></a>
-</p>
-</td><td>
-<p><b>OpenStack Project Teams</b> are the building blocks to achieve OpenStack's mission. One can think of Project Teams as teams of people using tools (code repository, bug tracker, etc) and coordinated processes to produce a number of deliverables, in order to achieve a clearly stated objective.
-</p>
-</td></tr>
-</table>
-<table border="0" width="100%">
-<tr valign="top"><td rowspan="2" width="33%">
-<h4><span class="mw-headline" id="Main_services">Main services</span></h4>
-<ul><li> Identity (<b><a href="/wiki/Keystone" title="Keystone">Keystone</a></b>)</li>
-<li> Compute (<b><a href="/wiki/Nova" title="Nova">Nova</a></b>)</li>
-<li> Image service (<b><a href="/wiki/Glance" title="Glance">Glance</a></b>)</li>
-<li> Networking (<b><a href="/wiki/Neutron" title="Neutron">Neutron</a></b>)</li>
-<li> Object Storage (<b><a href="/wiki/Swift" title="Swift">Swift</a></b>)</li>
-<li> Block Storage (<b><a href="/wiki/Cinder" title="Cinder">Cinder</a></b>)</li>
-<li> Orchestration (<b><a href="/wiki/Heat" title="Heat">Heat</a></b>)</li>
-<li> Database Service (<b><a href="/wiki/Trove" title="Trove">Trove</a></b>)</li>
-<li> Bare Metal (<b><a href="/wiki/Ironic" title="Ironic">Ironic</a></b>)</li>
-<li> Data processing (<b><a href="/wiki/Sahara" title="Sahara">Sahara</a></b>)</li>
-<li> Message service (<b><a href="/wiki/Zaqar" title="Zaqar">Zaqar</a></b>)</li>
-<li> Key management (<b><a href="/wiki/Barbican" title="Barbican">Barbican</a></b>)</li>
-<li> DNS (<b><a href="/wiki/Designate" title="Designate">Designate</a></b>)</li>
-<li> Shared Filesystems (<b><a href="/wiki/Manila" title="Manila">Manila</a></b>)</li></ul>
-</td><td rowspan="2" width="33%">
-<h4><span class="mw-headline" id="Supporting_services">Supporting services</span></h4>
-<ul><li> Dashboard (<b><a href="/wiki/Horizon" title="Horizon">Horizon</a></b>)</li>
-<li> Telemetry (<b><a href="/wiki/Ceilometer" title="Ceilometer">Ceilometer</a></b>)</li>
-<li> Common Libraries (<b><a href="/wiki/Oslo" title="Oslo">Oslo</a></b>)</li>
-<li> Deployment (<b><a href="/wiki/TripleO" title="TripleO">TripleO</a></b>)</li></ul>
-</td><td width="33%">
-<h4><span class="mw-headline" id="Horizontal_teams">Horizontal teams</span></h4>
-<ul><li> <b><a href="/wiki/Documentation" title="Documentation">Documentation</a></b></li>
-<li> <b><a href="/wiki/QA" title="QA">QA</a></b> and <b><a href="/wiki/DevStack" title="DevStack">DevStack</a></b></li>
-<li> <b><a href="/wiki/Infrastructure" title="Infrastructure">Infrastructure</a></b></li>
-<li> <b><a href="/wiki/Release_Cycle_Management" title="Release Cycle Management">Release cycle management</a></b></li></ul>
-</td></tr>
-<tr valign="bottom"><td>
-<p>See also the list of other <a rel="nofollow" class="external text" href="https://wiki.openstack.org/wiki/Category:Working_Groups">working groups</a>.
-</p>
-</td></tr>
-</table>
-<p><br />
-</p>
-</div>
-
-<!-- 
-NewPP limit report
-CPU time usage: 0.096 seconds
-Real time usage: 0.102 seconds
-Preprocessor visited node count: 39/1000000
-Preprocessor generated node count: 60/1000000
-Post‐expand include size: 0/2097152 bytes
-Template argument size: 0/2097152 bytes
-Highest expansion depth: 2/40
-Expensive parser function count: 0/100
--->
-
-<!-- Saved in parser cache with key openstack_wiki:pcache:idhash:1126-0!*!0!!*!5!* and timestamp 20150311091814 and revision id 73535
- -->
-</div>          </div></div>
-                <!-- /innerbodycontent -->
-
-                <!-- printfooter -->
-        <div class="printfooter">
-        Retrieved from "<a dir="ltr" href="https://wiki.openstack.org/w/index.php?title=Main_Page&amp;oldid=73535">https://wiki.openstack.org/w/index.php?title=Main_Page&amp;oldid=73535</a>"        </div>
-        <!-- /printfooter -->
-                        <!-- catlinks -->
-        <div id='catlinks' class='catlinks catlinks-allhidden'></div>        <!-- /catlinks -->
-                        <div class="visualClear"></div>
-        <!-- debughtml -->
-                <!-- /debughtml -->
-      </div>
-      <!-- /bodyContent -->
-    </section>
-    <!-- /content -->
-
-      <!-- footer -->
-
-      
-      <div id="footer" class="footer container">
-        <div class="row">
-    
-            <ul id="footer-places">
-                              <li id="footer-places-privacy"><a href="/wiki/OpenStack:Privacy_policy" title="OpenStack:Privacy policy">Privacy policy</a></li>
-                              <li id="footer-places-about"><a href="/wiki/OpenStack:About" title="OpenStack:About">About OpenStack</a></li>
-                              <li id="footer-places-disclaimer"><a href="/wiki/OpenStack:General_disclaimer" title="OpenStack:General disclaimer">Disclaimers</a></li>
-                              <li id="footer-places-mobileview"><a href="https://wiki.openstack.org/w/index.php?title=Main_Page&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li>
-                                        </ul>
-                                <ul id="footer-icons" class="noprint">
-                  <li id="footer-copyrightico">
-                    <a href="http://creativecommons.org/licenses/by/3.0/"><img src="/w/resources/assets/licenses/cc-by.png" alt="Attribution 3.0 Unported (CC BY 3.0)" width="88" height="31" /></a>
-                  </li>
-                  <li id="footer-poweredbyico">
-                    <a href="//www.mediawiki.org/"><img src="/w/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" width="88" height="31" /></a>
-                  </li>
-                </ul>
-                  </div>
-      </div>
-      <!-- /footer -->
-
-
-    <script>/*<![CDATA[*/window.jQuery && jQuery.ready();/*]]>*/</script><script>if(window.mw){
-mw.loader.state({"skins.strapping":"loading","site":"loading","user":"ready","user.groups":"ready"});
-}</script>
-<script>if(window.mw){
-document.write("\u003Cscript src=\"https://wiki.openstack.org/w/load.php?debug=false\u0026amp;lang=en\u0026amp;modules=skins.strapping\u0026amp;only=scripts\u0026amp;skin=strapping\u0026amp;*\"\u003E\u003C/script\u003E");
-}</script>
-<script>if(window.mw){
-mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest","ext.uls.pt"],null,true);
-}</script>
-<script src="//bits.wikimedia.org/geoiplookup"></script>
-<script>if(window.mw){
-document.write("\u003Cscript src=\"https://wiki.openstack.org/w/load.php?debug=false\u0026amp;lang=en\u0026amp;modules=site\u0026amp;only=scripts\u0026amp;skin=strapping\u0026amp;*\"\u003E\u003C/script\u003E");
-}</script>
-<script type="text/javascript">
-var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
-document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try {
-var pageTracker = _gat._getTracker("UA-17511903-1");
-pageTracker._trackPageview();
-} catch(err) {}
-</script><script>if(window.mw){
-mw.config.set({"wgBackendResponseTime":130});
-}</script>
-  </body>
-</html>