aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--deploy/opera_adapter.py126
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh9
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/tasks/main.yml2
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml13
4 files changed, 21 insertions, 129 deletions
diff --git a/deploy/opera_adapter.py b/deploy/opera_adapter.py
deleted file mode 100644
index fbf1b662..00000000
--- a/deploy/opera_adapter.py
+++ /dev/null
@@ -1,126 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-import os
-import sys
-import yaml
-import re
-import subprocess
-import traceback
-
-
-def load_file(file):
- with open(file) as fd:
- try:
- return yaml.safe_load(fd)
- except:
- traceback.print_exc()
- return None
-
-
-def dump_file(data, file):
- with open(file, 'w') as fd:
- try:
- return yaml.dump(data, fd, default_flow_style=False)
- except:
- traceback.print_exc()
- return None
-
-
-def sync_openo_config(openo_config, dha, network):
- """sync opera/conf/open-o.yml according to DHA and Network file"""
- deploy_opts = dha.get('deploy_options')
- openo_net = network.get('openo_net')
- if deploy_opts['orchestrator']['type'] != 'open-o':
- print("orchestrator is not openo")
- sys.exit(1)
-
- openo_config['openo_version'] = deploy_opts['orchestrator']['version']
- openo_config['vnf_type'] = deploy_opts['vnf']['type']
- openo_config['openo_net']['openo_ip'] = openo_net['openo_ip']
-
-
-def sync_admin_openrc(network, admin_openrc_file):
- ssh_opts = "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
- vip = network['public_vip']['ip']
- cmd = 'sshpass -p"root" ssh %s root@%s "cat /opt/admin-openrc.sh"' \
- % (ssh_opts, vip)
- ssh = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
- if ssh.stdout is None:
- print("fetch openrc fail")
- sys.exit(1)
-
- rcdata = ssh.stdout.readlines()
- with open(admin_openrc_file, 'w') as fd:
- ip = re.compile("\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}")
- for i in rcdata:
- if 'OS_AUTH_URL' in i:
- i = re.sub(ip, vip, i)
- fd.write(i)
-
- fd.write('export OS_REGION_NAME=RegionOne')
-
-
-if __name__ == "__main__":
- if len(sys.argv) != 3:
- print("parameter wrong%d %s" % (len(sys.argv), sys.argv))
- sys.exit(1)
-
- _, dha_file, network_file = sys.argv
- compass_dir = os.getenv('COMPASS_DIR')
-
- if not compass_dir:
- print("env var COMPASS_DIR doesn't exist")
- sys.exit(1)
-
- if not os.path.exists(dha_file):
- print("DHA file doesn't exist")
- sys.exit(1)
- if not os.path.exists(network_file):
- print("NETWORK file doesn't exist")
- sys.exit(1)
-
- dha = load_file(dha_file)
- network = load_file(network_file)
-
- if not dha:
- print('format error in DHA: %s' % dha_file)
- sys.exit(1)
- if not network:
- print('format error in NETWORK: %s' % network_file)
- sys.exit(1)
-
- work_dir = os.path.join(compass_dir, 'work')
- opera_dir = os.path.join(work_dir, 'opera')
- conf_dir = os.path.join(opera_dir, 'conf')
- openo_config_file = os.path.join(conf_dir, 'open-o.yml')
- admin_openrc_file = os.path.join(conf_dir, 'admin-openrc.sh')
-
- p1 = subprocess.Popen(
- "git clone https://gerrit.opnfv.org/gerrit/opera",
- cwd=work_dir, shell=True)
- p1.communicate()
-
- if not os.path.exists(openo_config_file):
- print('file opera/conf/open-o.yml not found')
- sys.exit(1)
- if not os.path.exists(admin_openrc_file):
- print('file opera/conf/admin-openrc.sh not found')
- sys.exit(1)
-
- openo_config = load_file(openo_config_file)
- sync_openo_config(openo_config, dha, network)
- dump_file(openo_config, openo_config_file)
- sync_admin_openrc(network, admin_openrc_file)
-
- p2 = subprocess.Popen("./opera_launch.sh", cwd=opera_dir, shell=True)
- p2.communicate()
- if p2.returncode != 0:
- print('./opera_launch.sh fail')
- sys.exit(1)
diff --git a/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh b/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh
index 112d9c84..89432135 100644
--- a/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh
+++ b/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh
@@ -49,3 +49,12 @@ sed -i 's/^opensds_auth_strategy.*/opensds_auth_strategy: noauth/g' group_vars/a
sed -i '/check_ansible_version/a \ ignore_errors: yes\' roles/common/tasks/main.yml
sed -i '/- dashboard-installer/s/^/#/g' site.yml
+
+# comment csi create pods in Stor4nfv
+sed -i '/kubectl create/s/^/#/g' roles/nbp-installer/scenarios/csi.yml
+
+sed -i 's/^opensds_endpoint.*/opensds_endpoint: http:\/\/'"$1"':50040/g' group_vars/common.yml
+
+sed -i '/and service_ceph_osd_status.rc == 0/s/^/#/g' roles/osdsdock/scenarios/ceph.yml
+sed -i '/and service_ceph_osd_status.rc == 0/a \ when: service_ceph_mon_status.rc == 0\' \
+ roles/osdsdock/scenarios/ceph.yml
diff --git a/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml
index 7bc8ec06..dbaa8d6b 100644
--- a/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml
+++ b/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml
@@ -7,7 +7,7 @@
# http://www.apache.org/licenses/LICENSE-2.0
# #############################################################################
---
-- include: stor4nfv
+- include: stor4nfv.yml
when:
- ansible_distribution == 'Ubuntu'
- stor4nfv is defined and stor4nfv == "Enable"
diff --git a/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml
index 017f377e..501d3baa 100644
--- a/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml
+++ b/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml
@@ -48,13 +48,22 @@
ignore_errors: "true"
register: osdsctl_exists
-- name: create opensds default profile
+- name: ensure opensds csi directory exists
+ stat:
+ path: /opt/opensds-sushi-linux-{{ imgarch }}
+ ignore_errors: "true"
+ register: csi_dir_exists
+
+- name: create opensds default profile, create csi pods
remote_user: root
shell: |
cp /opt/opensds-hotpot-linux-{{ imgarch }}/bin/osdsctl /usr/local/bin;
export OPENSDS_ENDPOINT=http://{{ public_vip.ip }}:50040;
export OPENSDS_AUTH_STRATEGY=noauth;
- osdsctl profile create '{"name": "default", "description": "default policy"}'
+ osdsctl profile create '{"name": "default", "description": "default policy"}';
+ cd /opt/opensds-sushi-linux-{{ imgarch }};
+ kubectl create -f csi/deploy/kubernetes
ignore_errors: "true"
when:
- osdsctl_exists.stat.exists is defined and osdsctl_exists.stat.exists
+ - csi_dir_exists.stat.exists is defined and csi_dir_exists.stat.exists