Add honeycomb to build process
[apex.git] / ci / util.sh
old mode 100644 (file)
new mode 100755 (executable)
index 3e50d96..8c09278
@@ -3,9 +3,11 @@
 # @author Tim Rozet (trozet@redhat.com)
 
 CONFIG=${CONFIG:-'/var/opt/opnfv'}
-VALID_CMDS="undercloud debug-stack -h --help"
+RESOURCES=${RESOURCES:-"$CONFIG/images"}
+LIB=${LIB:-"$CONFIG/lib"}
+VALID_CMDS="undercloud overcloud opendaylight debug-stack mock-detached -h --help"
 
-source $CONFIG/utility-functions.sh
+source $LIB/utility-functions.sh
 
 resolve_cmd() {
   local given=$1
@@ -19,9 +21,21 @@ resolve_cmd() {
 }
 
 display_usage() {
-  echo -e "Usage:\n$0 [arguments] \n"
-  echo -e "   undercloud <user> : Connect to Undercloud VM as <user>\n"
-  echo -e "   debug_stack : Print parsed deployment failures to stdout \n"
+  echo -e "Usage:\n$0 subcommand [ arguments ]\n"
+  echo -e "Arguments:\n"
+  echo -e "   undercloud [ user [ command ] ]   Connect to Undercloud VM as user and optionally execute a command\n"
+  echo -e "                                     user    Optional: Defaults to 'stack'\n"
+  echo -e "                                     command Optional: Defaults to none\n"
+  echo -e ""
+  echo -e "   opendaylight                      Connect to OpenDaylight Karaf console\n"
+  echo -e ""
+  echo -e "   overcloud  [ node [ command ] ]   Connect to an Overcloud node and optionally execute a command\n"
+  echo -e "                                     node    Required: in format controller|compute<number>.  Example: controller0\n"
+  echo -e "                                     command Optional: Defaults to none\n"
+  echo -e ""
+  echo -e "   debug-stack                       Print parsed deployment failures to stdout \n"
+  echo -e ""
+  echo -e "   mock-detached on | off            Add firewall rules to the jump host to mock a detached deployment \n"
 }
 
 ##translates the command line argument
@@ -50,15 +64,60 @@ parse_cmdline() {
                 if [ -z "$2" ]; then
                   # connect as stack by default
                   undercloud_connect stack
+                elif [ -z "$3" ]; then
+                  undercloud_connect "$2"
                 else
-                  undercloud_connect $2
+                  undercloud_connect "$2" "$3"
                 fi
                 exit 0
             ;;
+        overcloud)
+                if [ -z "$2" ]; then
+                  overcloud_connect
+                elif [ -z "$3" ]; then
+                  overcloud_connect "$2"
+                else
+                  overcloud_connect "$2" "$3"
+                fi
+                exit 0
+            ;;
+        opendaylight)
+                opendaylight_connect
+                exit 0
+            ;;
         debug-stack)
                 undercloud_connect stack "$(typeset -f debug_stack); debug_stack"
                 exit 0
             ;;
+        mock-detached)
+                if [ "$2" == "on" ]; then
+                    echo "Ensuring we can talk to gerrit.opnfv.org"
+                    iptables -A OUTPUT -p tcp -d gerrit.opnfv.org --dport 443 -j ACCEPT
+                    echo "Blocking output http (80) traffic"
+                    iptables -A OUTPUT -p tcp --dport 80 -j REJECT
+                    iptables -A FORWARD -p tcp --dport 80 -j REJECT
+                    echo "Blocking output https (443) traffic"
+                    iptables -A OUTPUT -p tcp --dport 443 -j REJECT
+                    iptables -A FORWARD -p tcp --dport 443 -j REJECT
+                    echo "Blocking output dns (53) traffic"
+                    iptables -A FORWARD -p tcp --dport 53 -j REJECT
+                elif [ "$2" == "off" ]; then
+                    echo "Cleaning gerrit.opnfv.org specific rule"
+                    iptables -D OUTPUT -p tcp -d gerrit.opnfv.org --dport 443 -j ACCEPT
+                    echo "Allowing output http (80) traffic"
+                    iptables -D OUTPUT -p tcp --dport 80 -j REJECT
+                    iptables -D FORWARD -p tcp --dport 80 -j REJECT
+                    echo "Allowing output https (443) traffic"
+                    iptables -D OUTPUT -p tcp --dport 443 -j REJECT
+                    iptables -D FORWARD -p tcp --dport 443 -j REJECT
+                    echo "Allowing output dns (53) traffic"
+                    iptables -D OUTPUT -p tcp --dport 53 -j REJECT
+                    iptables -D FORWARD -p tcp --dport 53 -j REJECT
+                else
+                    display_usage
+                fi
+                exit 0
+            ;;
         *)
                 echo -e "\n\nThis script is used to interact with Apex deployments\n\n"
                 echo "Use -h to display help"