bring XOS up to date with latest vtn
diff --git a/xos/configurations/cord/make-vtn-networkconfig-json.sh b/xos/configurations/cord/make-vtn-networkconfig-json.sh
index c60a939..9406d27 100755
--- a/xos/configurations/cord/make-vtn-networkconfig-json.sh
+++ b/xos/configurations/cord/make-vtn-networkconfig-json.sh
@@ -10,14 +10,20 @@
"org.onosproject.cordvtn" : {
"cordvtn" : {
"gatewayMac" : "00:00:00:00:00:01",
+ "localManagementIp": "172.27.0.1/24",
+ "ovsdbPort": "6641",
+ "sshPort": "22",
+ "sshUser": "root",
+ "sshKeyFile": "/root/node_key",
"nodes" : [
EOF
NODES=$( sudo bash -c "source $SETUPDIR/admin-openrc.sh ; nova hypervisor-list" |grep -v ID|grep -v +|awk '{print $4}' )
+# XXX disabled - we don't need or want the nm node at this time
# also configure ONOS to manage the nm node
-NM=`grep "^nm" /root/setup/fqdn.map | awk '{ print $2 }'`
-NODES="$NODES $NM"
+# NM=`grep "^nm" /root/setup/fqdn.map | awk '{ print $2 }'`
+# NODES="$NODES $NM"
NODECOUNT=0
for NODE in $NODES; do
@@ -39,11 +45,10 @@
cat >> $FN <<EOF
{
"hostname": "$NODE",
- "ovsdbIp": "$NODEIP",
- "ovsdbPort": "6641",
+ "hostManagementIp": "$NODEIP/24",
"bridgeId": "of:000000000000000$I",
- "phyPortName": "$PHYPORT",
- "localIp": "$LOCALIP"
+ "dataplaneIntf": "$PHYPORT",
+ "dataplaneIp": "$LOCALIP"
EOF
if [[ "$I" -lt "$NODECOUNT" ]]; then
echo " }," >> $FN
diff --git a/xos/services/onos/models.py b/xos/services/onos/models.py
index 4be2c1b..20fa73f 100644
--- a/xos/services/onos/models.py
+++ b/xos/services/onos/models.py
@@ -23,7 +23,8 @@
default_attributes = {"rest_hostname": "",
"rest_port": "8181",
- "no_container": False}
+ "no_container": False,
+ "node_key": ""}
@property
def rest_hostname(self):
@@ -49,6 +50,14 @@
def no_container(self, value):
self.set_attribute("no_container", value)
+ @property
+ def node_key(self):
+ return self.get_attribute("node_key", self.default_attributes["node_key"])
+
+ @node_key.setter
+ def node_key(self, value):
+ self.set_attribute("node_key", value)
+
class ONOSApp(Tenant): # aka 'ONOSTenant'
class Meta:
diff --git a/xos/synchronizers/onos/steps/sync_onosapp.py b/xos/synchronizers/onos/steps/sync_onosapp.py
index 281df10..87ed89c 100644
--- a/xos/synchronizers/onos/steps/sync_onosapp.py
+++ b/xos/synchronizers/onos/steps/sync_onosapp.py
@@ -132,6 +132,13 @@
ordered_attrs = attrs.keys()
+ onos = self.get_onos_service(o)
+ if onos.node_key:
+ file(os.path.join(o.files_dir, "node_key"),"w").write(onos.node_key)
+ o.node_key_fn="node_key"
+ else:
+ o.node_key_fn=None
+
o.early_rest_configs=[]
if ("cordvtn" in o.dependencies) and (not self.is_no_container(o)):
# For VTN, since it's running in a docker host container, we need
@@ -208,6 +215,7 @@
fields["config_fns"] = o.config_fns
fields["early_rest_configs"] = o.early_rest_configs
fields["component_configs"] = o.component_configs
+ fields["node_key_fn"] = o.node_key_fn
if o.install_dependencies:
fields["install_dependencies"] = [x.strip() for x in o.install_dependencies.split(",")]
diff --git a/xos/synchronizers/onos/steps/sync_onosapp.yaml b/xos/synchronizers/onos/steps/sync_onosapp.yaml
index f0af0d6..8235286 100644
--- a/xos/synchronizers/onos/steps/sync_onosapp.yaml
+++ b/xos/synchronizers/onos/steps/sync_onosapp.yaml
@@ -50,6 +50,16 @@
path=/home/ubuntu/{{ appname }}/
state=directory
+{% if node_key_fn %}
+ - name: Copy over key
+ copy:
+ src={{ files_dir }}/{{ node_key_fn }}
+ dest=/home/ubuntu/node_key
+
+ - name: Copy node key into container
+ shell: docker cp /home/ubuntu/node_key {{ ONOS_container }}:/root/node_key
+{% endif %}
+
{% if config_fns %}
- name: Copy over configuration files
copy:
diff --git a/xos/tosca/custom_types/xos.m4 b/xos/tosca/custom_types/xos.m4
index 9df9de9..92f8cc1 100644
--- a/xos/tosca/custom_types/xos.m4
+++ b/xos/tosca/custom_types/xos.m4
@@ -130,6 +130,9 @@
no_container:
type: boolean
default: false
+ node_key:
+ type: string
+ required: false
tosca.nodes.ONOSApp:
diff --git a/xos/tosca/custom_types/xos.yaml b/xos/tosca/custom_types/xos.yaml
index 8535ada..dfb9481 100644
--- a/xos/tosca/custom_types/xos.yaml
+++ b/xos/tosca/custom_types/xos.yaml
@@ -160,6 +160,9 @@
no_container:
type: boolean
default: false
+ key_fn:
+ type: string
+ required: false
tosca.nodes.ONOSApp:
diff --git a/xos/tosca/resources/onosservice.py b/xos/tosca/resources/onosservice.py
index c836a6c..3540dd0 100644
--- a/xos/tosca/resources/onosservice.py
+++ b/xos/tosca/resources/onosservice.py
@@ -13,7 +13,7 @@
class XOSONOSService(XOSService):
provides = "tosca.nodes.ONOSService"
xos_model = ONOSService
- copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "versionNumber", "rest_hostname", "rest_port", "no_container"]
+ copyin_props = ["view_url", "icon_url", "enabled", "published", "public_key", "versionNumber", "rest_hostname", "rest_port", "no_container", "node_key"]
def set_service_attr(self, obj, prop_name, value):
value = self.try_intrinsic_function(value)