diff --git a/.gitignore b/.gitignore
index 59887ec..6d8ff47 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,5 @@ calicoctl/calicoctl
 bin
 release
 *.coverprofile
-vendor
 nosetests.xml
-testfile.yaml
\ No newline at end of file
+testfile.yaml
diff --git a/calicoctl/commands/node_aix.go b/calicoctl/commands/node_aix.go
new file mode 100644
index 0000000..e075a09
--- /dev/null
+++ b/calicoctl/commands/node_aix.go
@@ -0,0 +1,26 @@
+// Copyright (c) 2016 Tigera, Inc. All rights reserved.
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package commands
+
+import (
+	"fmt"
+	"os"
+)
+
+// Node function is a switch to node related sub-commands
+func Node(args []string) {
+	fmt.Println("Error executing command: 'calicoctl node' commands are not available on this OS")
+	os.Exit(1)
+}
diff --git a/calicoctl/commands/version.go b/calicoctl/commands/version.go
index f4e7016..1627c02 100644
--- a/calicoctl/commands/version.go
+++ b/calicoctl/commands/version.go
@@ -26,7 +26,7 @@ import (
 	"github.com/projectcalico/libcalico-go/lib/options"
 )
 
-var VERSION, BUILD_DATE, GIT_REVISION string
+var VERSION, BUILD_DATE, GIT_REVISION string = "v2.0.2", "2018-08-21T14:45:28GMT", "6acca0a"
 var VERSION_SUMMARY string
 
 func init() {
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_aix.go b/vendor/golang.org/x/crypto/ssh/terminal/util_aix.go
new file mode 100644
index 0000000..69d737e
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util_aix.go
@@ -0,0 +1,50 @@
+// Based on ssh/terminal:
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package terminal
+
+import (
+	"syscall"
+)
+
+// State represents the state of the terminal.
+type State struct {
+	termios syscall.Termios
+}
+
+// IsTerminal returns true if the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+	var termios syscall.Termios
+	err := syscall.Tcgetattr(fd, &termios)
+	return err == nil
+}
+
+// MakeRaw put the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+func MakeRaw(fd int) (*State, error) {
+	var oldState State
+	if err := syscall.Tcgetattr(fd, &oldState.termios); err != nil {
+		return nil, err
+	}
+
+	newState := oldState.termios
+	newState.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON
+	newState.Oflag &^= syscall.OPOST
+	newState.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN
+	newState.Cflag &^= syscall.CSIZE | syscall.PARENB
+	newState.Cflag |= syscall.CS8
+
+	if err := syscall.Tcsetattr(fd, syscall.TCSANOW, &newState); err != nil {
+		return nil, err
+	}
+	return &oldState, nil
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, oldState *State) error {
+	return syscall.Tcsetattr(fd, syscall.TCSANOW, &oldState.termios)
+}
