diff --git a/xos/services/vpn/admin.py b/xos/services/vpn/admin.py
index d346ddf..8088dad 100644
--- a/xos/services/vpn/admin.py
+++ b/xos/services/vpn/admin.py
@@ -124,7 +124,8 @@
     vpn_subnet = forms.GenericIPAddressField(protocol="IPv4", required=True)
     is_persistent = forms.BooleanField(required=False)
     clients_can_see_each_other = forms.BooleanField(required=False)
-    failover_servers = forms.ModelMultipleChoiceField(required=False, queryset=VPNTenant.get_tenant_objects())
+    failover_servers = forms.ModelMultipleChoiceField(
+        required=False, queryset=VPNTenant.get_tenant_objects())
     protocol = forms.ChoiceField(required=True, choices=[
         ("tcp", "tcp"), ("udp", "udp")])
     use_ca_from = forms.ModelChoiceField(
@@ -240,18 +241,18 @@
                 certificate = self.certificate_name(obj)
                 # If the client has already been reovked don't do it again
                 if (os.path.isfile(obj.tenant.pki_dir +
-                    "/issued/" + certificate + ".crt")):
+                                   "/issued/" + certificate + ".crt")):
                     VPNService.execute_easyrsa_command(
                         obj.tenant.pki_dir, "revoke " + certificate)
                     # Revoking a client cert does not delete any of the files
                     # to make sure that we can add this user again we need to
                     # delete all of the files created by easyrsa
                     os.remove(obj.tenant.pki_dir +
-                        "/issued/" + certificate + ".crt")
+                              "/issued/" + certificate + ".crt")
                     os.remove(obj.tenant.pki_dir +
-                        "/private/" + certificate + ".key")
+                              "/private/" + certificate + ".key")
                     os.remove(obj.tenant.pki_dir +
-                        "/reqs/" + certificate + ".req")
+                              "/reqs/" + certificate + ".req")
 
                     obj.tenant.enacted = None
                     obj.tenant.save()
@@ -267,7 +268,7 @@
                 certificate = self.certificate_name(obj)
                 # Only add a certificate if ones does not yet exist
                 if (not os.path.isfile(obj.tenant.pki_dir +
-                    "/issued/" + certificate + ".crt")):
+                                       "/issued/" + certificate + ".crt")):
                     VPNService.execute_easyrsa_command(
                         obj.tenant.pki_dir,
                         "build-client-full " + certificate + " nopass")
diff --git a/xos/services/vpn/models.py b/xos/services/vpn/models.py
index 0070d76..77705d0 100644
--- a/xos/services/vpn/models.py
+++ b/xos/services/vpn/models.py
@@ -295,10 +295,10 @@
                 "key " + client_name + ".key\n" +
                 "verb 3\n" +
                 self.get_remote_line(
-                        self.nat_ip, self.port_number, self.protocol))
+                    self.nat_ip, self.port_number, self.protocol))
         for remote in self.failover_servers:
             conf += self.get_remote_line(
-                    remote.nat_ip, remote.port_number, remote.protocol)
+                remote.nat_ip, remote.port_number, remote.protocol)
 
         if self.is_persistent:
             conf += "persist-tun\n"
diff --git a/xos/synchronizers/vpn/steps/sync_vpntenant.py b/xos/synchronizers/vpn/steps/sync_vpntenant.py
index 7538628..fc1e695 100644
--- a/xos/synchronizers/vpn/steps/sync_vpntenant.py
+++ b/xos/synchronizers/vpn/steps/sync_vpntenant.py
@@ -19,7 +19,6 @@
     template_name = "sync_vpntenant.yaml"
     service_key_name = "/opt/xos/synchronizers/vpn/vpn_private_key"
 
-
     def sync_fields(self, tenant, fields):
         tenant.pki_dir = (
             VPNService.OPENVPN_PREFIX + "server-" + str(result.id))
