initial add
deleting bin/cert
adding license info

tweaking packages to match go standard conventions

updating to match tweaked package names

Change-Id: I78b395a778c0ceb649e2aa4491c81fd3dc28d0c0
diff --git a/internal/pkg/chassisSerialize/serialize.go b/internal/pkg/chassisSerialize/serialize.go
new file mode 100644
index 0000000..6e947a5
--- /dev/null
+++ b/internal/pkg/chassisSerialize/serialize.go
@@ -0,0 +1,47 @@
+/*
+   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.
+   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 chassisSerialize
+
+import (
+	"encoding/json"
+
+	"gerrit.opencord.org/abstract-olt/models/abstract"
+)
+
+func Serialize(chassis *abstract.Chassis) ([]byte, error) {
+	return json.Marshal(chassis)
+}
+
+func Deserialize(jsonData []byte) (*abstract.Chassis, error) {
+	var chassis abstract.Chassis
+	err := json.Unmarshal(jsonData, &chassis)
+
+	for i := 0; i < len(chassis.Slots); i++ {
+		var slot *abstract.Slot
+		slot = &chassis.Slots[i]
+		slot.Parent = &chassis
+		for j := 0; j < len(slot.Ports); j++ {
+			var port *abstract.Port
+			port = &slot.Ports[j]
+			port.Parent = slot
+			for k := 0; k < len(port.Onts); k++ {
+				port.Onts[k].Parent = port
+			}
+		}
+	}
+
+	return &chassis, err
+}