Adding awaiting-auth state for subscriber

Change-Id: Iba5facd2d61ad00dc255f436ab8292b8183a10fc
diff --git a/samples/pre-provisioned-subscriber.yaml b/samples/pre-provisioned-subscriber.yaml
new file mode 100644
index 0000000..c198259
--- /dev/null
+++ b/samples/pre-provisioned-subscriber.yaml
@@ -0,0 +1,31 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+# curl -H "xos-username: admin@opencord.org" -H "xos-password: letmein" -X POST --data-binary @pre-provisioned-subscriber.yaml http://192.168.99.100:30007/run
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/rcordsubscriber.yaml
+description: Pre-provision a test subscriber
+topology_template:
+  node_templates:
+    #Activate the subscriber
+    my_house:
+      type: tosca.nodes.RCORDSubscriber
+      properties:
+        name: My House
+        status: pre-provisioned
+        onu_device: BRCM1234
+        mac_address: 90:E2:BA:82:FA:81
+        ip_address: 192.168.0.1
diff --git a/xos/synchronizer/models/models.py b/xos/synchronizer/models/models.py
index 6063282..0985848 100644
--- a/xos/synchronizer/models/models.py
+++ b/xos/synchronizer/models/models.py
@@ -99,7 +99,7 @@
 
         self.set_owner()
 
-        if hasattr(self.owner.leaf_model, "access") and self.owner.leaf_model.access == "voltha":
+        if self.status != "pre-provisioned" and hasattr(self.owner.leaf_model, "access") and self.owner.leaf_model.access == "voltha":
 
             # if the access network is managed by voltha, validate that onu_device actually exist
             volt_service = self.owner.provider_services[0].leaf_model # we assume RCORDService is connected only to the vOLTService
diff --git a/xos/synchronizer/models/rcord.xproto b/xos/synchronizer/models/rcord.xproto
index 6dff24d..a8974bc 100644
--- a/xos/synchronizer/models/rcord.xproto
+++ b/xos/synchronizer/models/rcord.xproto
@@ -22,7 +22,7 @@
     optional bool cdn_enable = 6 [default = False, null = False, db_index = False, blank = True];
     optional int32 uplink_speed = 8 [default = 1000000000, null = False, db_index = False, blank = False];
     optional int32 downlink_speed = 9 [default = 1000000000, null = False, db_index = False, blank = False];
-    optional string status = 11 [default = "enabled", choices = "(('enabled', 'Enabled'), ('disabled', 'Disabled'), ('pre-provisioned', 'Pre Provisioned'))", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
+    optional string status = 11 [default = "enabled", choices = "(('enabled', 'Enabled'), ('disabled', 'Disabled'), ('pre-provisioned', 'Pre Provisioned'), ('awaiting-auth', 'Awaiting Authentication'))", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
 
     // parameters for r-cord lite
     optional int32 c_tag = 12 [null = True, db_index = False, blank = False];