From 42f369cdf3cf7a983132340bce3169d8bb11c0ab Mon Sep 17 00:00:00 2001 From: Parker Berberian Date: Mon, 21 Aug 2017 09:47:46 -0400 Subject: [PATCH] Adds Experimental support for Joid JIRA: N/A Adds a joid installer object, and needed configuration / scripts. Currently, this only works with a no-ha scenario. Change-Id: Ib3076d0341e47d3bebe89ae1b22e87547fe3f524 Signed-off-by: Parker Berberian --- tools/laas-fog/conf/joid.yaml | 17 +++++++++++++ tools/laas-fog/hostScripts/joidInstall.sh | 33 +++++++++++++++++++++++++ tools/laas-fog/source/installers/joid.py | 40 +++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 tools/laas-fog/conf/joid.yaml create mode 100755 tools/laas-fog/hostScripts/joidInstall.sh create mode 100644 tools/laas-fog/source/installers/joid.py diff --git a/tools/laas-fog/conf/joid.yaml b/tools/laas-fog/conf/joid.yaml new file mode 100644 index 00000000..b38dedce --- /dev/null +++ b/tools/laas-fog/conf/joid.yaml @@ -0,0 +1,17 @@ +--- +database: /var/OPNFV/hosts.db +dhcp_log: /var/log/messages +dhcp_server: null +fog: + api_key: /path/to/fog.key # may also put the key directly here + server: http://fogserver.com/fog/ + user_key: /path/to/fog_user.key + image_id: 12 +installer: Joid +logging_dir: /var/log/OPNFV/ +scenario: os-nosdn-nofeature-noha +hypervisor_config: + networks: /root/laas/conf/network.yaml + vms: /root/laas/conf/domain.yaml +inventory: /root/laas/conf/inventory.yaml +vpn_config: /root/laas/conf/vpn.yaml diff --git a/tools/laas-fog/hostScripts/joidInstall.sh b/tools/laas-fog/hostScripts/joidInstall.sh new file mode 100755 index 00000000..df419c79 --- /dev/null +++ b/tools/laas-fog/hostScripts/joidInstall.sh @@ -0,0 +1,33 @@ +#!/bin/bash +############################################################################# +#Copyright 2017 Parker Berberian and others # +# # +#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. # +############################################################################# + +# parses the passed scenario +args=($(echo "$1" | tr "-" "\n")) +# args is array: [os, nosdn, nofeature, noha] + +# the deploy script expects 'none' rather than 'nofeature' +if [ "nofeature" == "${args[2]}" ]; then + args[2]="none" +fi +# grabs the joid repo +git clone "https://gerrit.opnfv.org/gerrit/joid.git" +# working directory has to be where 03-maasdeploy is +cd joid/ci +# virtualy deploy maas +./03-maasdeploy.sh virtual +# deploys OPNFV with the given scenario +./deploy.sh -o newton -s "${args[1]}" -t "${args[3]}" -l default -d xenial -m openstack -f "${args[2]}" diff --git a/tools/laas-fog/source/installers/joid.py b/tools/laas-fog/source/installers/joid.py new file mode 100644 index 00000000..a3f3bcf1 --- /dev/null +++ b/tools/laas-fog/source/installers/joid.py @@ -0,0 +1,40 @@ +""" +############################################################################# +#Copyright 2017 Parker Berberian and others # +# # +#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. # +############################################################################# +""" + +""" +This class will install Joid onto the remote host. +Currently only supports joid's "default" configuration +""" + + +class Joid_Installer: + + def __init__(self, doms, nets, libvirt_handler, util): + """ + init function calls the super constructor + """ + super(Joid_Installer, self).__init__(doms, nets, libvirt_handler, util) + + def go(self): + """ + does all the work of this class. + Currently just runs the joidInstall script, which installs joid + onto the remote host + """ + self.logger.info("%s", "Executing joid virtual installation") + self.util.execRemoteScript("joidInstall.sh") -- 2.16.6