diff --git a/common/utils/asleep.py b/common/utils/asleep.py
index e27d313..10d1ce3 100644
--- a/common/utils/asleep.py
+++ b/common/utils/asleep.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/common/utils/consulhelpers.py b/common/utils/consulhelpers.py
index 91acfc6..1d2b88f 100644
--- a/common/utils/consulhelpers.py
+++ b/common/utils/consulhelpers.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/common/utils/dockerhelpers.py b/common/utils/dockerhelpers.py
index ffd3601..9379e2d 100644
--- a/common/utils/dockerhelpers.py
+++ b/common/utils/dockerhelpers.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -248,4 +248,4 @@
 def get_id(event):
     for k in ['id', 'ID', 'Id']:
         if k in event:
-            return event[k]
\ No newline at end of file
+            return event[k]
diff --git a/common/utils/grpc_utils.py b/common/utils/grpc_utils.py
index 03d2ff4..8df630e 100644
--- a/common/utils/grpc_utils.py
+++ b/common/utils/grpc_utils.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/common/utils/message_queue.py b/common/utils/message_queue.py
index 74b763f..2b4257a 100644
--- a/common/utils/message_queue.py
+++ b/common/utils/message_queue.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/common/utils/nethelpers.py b/common/utils/nethelpers.py
index 52f7f4c..b79d2b0 100644
--- a/common/utils/nethelpers.py
+++ b/common/utils/nethelpers.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/common/utils/ordered_weakvalue_dict.py b/common/utils/ordered_weakvalue_dict.py
index 0c63f67..9ea739a 100644
--- a/common/utils/ordered_weakvalue_dict.py
+++ b/common/utils/ordered_weakvalue_dict.py
@@ -1,5 +1,5 @@
 #
-# Copyright 2016 the original author or authors.
+# Copyright 2017 the original author or authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
