summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--deploy/cloud/deploy.py4
-rw-r--r--deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml5
-rw-r--r--deploy/config/plugins/fuel-bgpvpn_0.0.3.yaml22
-rw-r--r--deploy/dea.py8
-rw-r--r--deploy/dha_adapters/hardware_adapter.py5
-rw-r--r--deploy/environments/execution_environment.py8
-rw-r--r--deploy/environments/libvirt_environment.py12
-rw-r--r--deploy/environments/virtual_fuel.py3
-rwxr-xr-xprototypes/sfc_tacker/poc.tacker-up.sh27
9 files changed, 68 insertions, 26 deletions
diff --git a/deploy/cloud/deploy.py b/deploy/cloud/deploy.py
index 3d3017e42..07d5d578f 100644
--- a/deploy/cloud/deploy.py
+++ b/deploy/cloud/deploy.py
@@ -43,8 +43,8 @@ class Deploy(object):
def assign_roles_to_cluster_node_ids(self):
self.node_roles_dict = {}
for blade, node in self.blade_node_dict.iteritems():
- if self.dea.get_node_role(blade):
- roles = commafy(self.dea.get_node_role(blade))
+ if self.dea.get_node_roles(blade):
+ roles = commafy(self.dea.get_node_roles(blade))
self.node_roles_dict[node] = (roles, blade)
def configure_environment(self):
diff --git a/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml
index e70d8ca82..851509871 100644
--- a/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml
+++ b/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml
@@ -36,3 +36,8 @@ disks:
fuel: 100G
controller: 100G
compute: 100G
+
+number_cpus:
+ # Entry is not mandatory! If it is left empty
+ # the default is 2 cpus per node
+ controller: 2
diff --git a/deploy/config/plugins/fuel-bgpvpn_0.0.3.yaml b/deploy/config/plugins/fuel-bgpvpn_0.0.3.yaml
new file mode 100644
index 000000000..adca822fc
--- /dev/null
+++ b/deploy/config/plugins/fuel-bgpvpn_0.0.3.yaml
@@ -0,0 +1,22 @@
+plugin-config-metadata:
+ title: BGPVPN fuel Plugin configuration template
+ version: 0.3
+ created: 08-Mar-16
+ comment: None
+
+bgpvpn:
+ metadata:
+ class: plugin
+ default: false
+ enabled: true
+ label: BGPVPN plugin
+ toggleable: true
+ versions:
+ - metadata:
+ always_editable: false
+ label: BGPVPN plugin
+ plugin_version: 0.8.0
+ restrictions:
+ - cluster:net_provider != 'neutron': Only neutron is supported by BGPVPN-plugin
+ weight: 90
+ weight: 70
diff --git a/deploy/dea.py b/deploy/dea.py
index b5b63f7cc..1ac048e06 100644
--- a/deploy/dea.py
+++ b/deploy/dea.py
@@ -65,9 +65,15 @@ class DeploymentEnvironmentAdapter(object):
if node['id'] == node_id and property_name in node:
return node[property_name]
- def get_node_role(self, node_id):
+ def get_node_roles(self, node_id):
return self.get_node_property(node_id, 'role')
+ def get_node_main_role(self, node_id, fuel_node_id):
+ if node_id == fuel_node_id:
+ return 'fuel'
+ roles = self.get_node_roles(node_id)
+ return 'controller' if 'controller' in roles else 'compute'
+
def get_node_ids(self):
node_ids = []
for node in self.dea_struct['nodes']:
diff --git a/deploy/dha_adapters/hardware_adapter.py b/deploy/dha_adapters/hardware_adapter.py
index 2cd5ab842..55bb4002e 100644
--- a/deploy/dha_adapters/hardware_adapter.py
+++ b/deploy/dha_adapters/hardware_adapter.py
@@ -58,3 +58,8 @@ class HardwareAdapter(object):
def get_disks(self):
return self.dha_struct['disks']
+
+ def get_number_cpus(self, role):
+ role_cpus_dict = self.dha_struct.get('number_cpus')
+ if role_cpus_dict:
+ return role_cpus_dict.get(role)
diff --git a/deploy/environments/execution_environment.py b/deploy/environments/execution_environment.py
index 38e5bcdf7..c2e7a0b23 100644
--- a/deploy/environments/execution_environment.py
+++ b/deploy/environments/execution_environment.py
@@ -50,7 +50,7 @@ class ExecutionEnvironment(object):
for file in disk_files:
delete(file)
- def define_vm(self, vm_name, temp_vm_file, disk_path):
+ def define_vm(self, vm_name, temp_vm_file, disk_path, number_cpus):
log('Creating VM %s with disks %s' % (vm_name, disk_path))
with open(temp_vm_file) as f:
vm_xml = etree.parse(f)
@@ -60,10 +60,14 @@ class ExecutionEnvironment(object):
uuids = vm_xml.xpath('/domain/uuid')
for uuid in uuids:
uuid.getparent().remove(uuid)
+ if number_cpus:
+ vcpus = vm_xml.xpath('/domain/vcpu')
+ for vcpu in vcpus:
+ vcpu.text = str(number_cpus)
disks = vm_xml.xpath('/domain/devices/disk')
for disk in disks:
if (disk.get('type') == 'file' and
- disk.get('device') == 'disk'):
+ disk.get('device') == 'disk'):
sources = disk.xpath('source')
for source in sources:
disk.remove(source)
diff --git a/deploy/environments/libvirt_environment.py b/deploy/environments/libvirt_environment.py
index 2a09117bc..380262c7e 100644
--- a/deploy/environments/libvirt_environment.py
+++ b/deploy/environments/libvirt_environment.py
@@ -34,12 +34,8 @@ class LibvirtEnvironment(ExecutionEnvironment):
self.net_names = self.collect_net_names()
def create_storage(self, node_id, disk_path, disk_sizes):
- if node_id == self.fuel_node_id:
- disk_size = disk_sizes['fuel']
- else:
- roles = self.dea.get_node_role(node_id)
- role = 'controller' if 'controller' in roles else 'compute'
- disk_size = disk_sizes[role]
+ role = self.dea.get_node_main_role(node_id, self.fuel_node_id)
+ disk_size = disk_sizes[role]
exec_cmd('qemu-img create -f qcow2 %s %s' % (disk_path, disk_size))
def create_vms(self):
@@ -53,9 +49,11 @@ class LibvirtEnvironment(ExecutionEnvironment):
check_file_exists(vm_template)
disk_path = '%s/%s.raw' % (self.storage_dir, vm_name)
self.create_storage(node_id, disk_path, disk_sizes)
+ number_cpus = self.dha.get_number_cpus(
+ self.dea.get_node_main_role(node_id, self.fuel_node_id))
temp_vm_file = '%s/%s' % (temp_dir, vm_name)
exec_cmd('cp %s %s' % (vm_template, temp_vm_file))
- self.define_vm(vm_name, temp_vm_file, disk_path)
+ self.define_vm(vm_name, temp_vm_file, disk_path, number_cpus)
delete(temp_dir)
def start_vms(self):
diff --git a/deploy/environments/virtual_fuel.py b/deploy/environments/virtual_fuel.py
index 0e7f27365..62082185f 100644
--- a/deploy/environments/virtual_fuel.py
+++ b/deploy/environments/virtual_fuel.py
@@ -55,11 +55,12 @@ class VirtualFuel(ExecutionEnvironment):
disk_path = '%s/%s.raw' % (self.storage_dir, vm_name)
disk_sizes = self.dha.get_disks()
disk_size = disk_sizes['fuel']
+ number_cpus = self.dha.get_number_cpus('fuel')
exec_cmd('qemu-img create -f qcow2 %s %s' % (disk_path, disk_size))
temp_vm_file = '%s/%s' % (temp_dir, vm_name)
exec_cmd('cp %s %s' % (vm_template, temp_vm_file))
self.set_vm_nic(temp_vm_file)
- self.define_vm(vm_name, temp_vm_file, disk_path)
+ self.define_vm(vm_name, temp_vm_file, disk_path, number_cpus)
delete(temp_dir)
def setup_environment(self):
diff --git a/prototypes/sfc_tacker/poc.tacker-up.sh b/prototypes/sfc_tacker/poc.tacker-up.sh
index f7c9e1165..be647b409 100755
--- a/prototypes/sfc_tacker/poc.tacker-up.sh
+++ b/prototypes/sfc_tacker/poc.tacker-up.sh
@@ -23,9 +23,9 @@ MYREPO="tacker-server"
CLIREPO="tacker-client"
DEPREPO="jsonrpclib"
-CLIENT="python-python-tackerclient_0.0.1~dev48-1_all.deb"
-JSONRPC="python-jsonrpclib_0.1.7-1_all.deb"
-SERVER="python-tacker_2014.2.0~dev177-1_all.deb"
+CLIENT=$(echo python-python-tackerclient_*_all.deb)
+JSONRPC=$(echo python-jsonrpclib_*_all.deb)
+SERVER=$(echo python-tacker_*_all.deb)
# Function checks whether crudini is available, if not - installs
function chkCrudini () {
@@ -74,6 +74,7 @@ function deployJsonrpclib () {
dpkg --purge python-jsonrpclib
python setup.py --command-packages=stdeb.command bdist_deb
cd "deb_dist"
+ JSONRPC=$(echo python-jsonrpclib_*_all.deb)
cp $JSONRPC $MYDIR
dpkg -i $JSONRPC
}
@@ -117,6 +118,9 @@ EOFSCP
# Function corrects and installs the Tacker-server debian package
function blessPackage () {
+ pushd "${MYDIR}/${MYREPO}/deb_dist"
+ SERVER=$(echo python-tacker_*_all.deb)
+ popd
DEBFILE="${MYDIR}/${MYREPO}/deb_dist/${SERVER}"
TMPDIR=$(mktemp -d /tmp/deb.XXXXXX) || exit 1
OUTPUT=$(basename "$DEBFILE")
@@ -144,9 +148,9 @@ diff -ruN a/DEBIAN/control b/DEBIAN/control
EOFDC
cd "$MYDIR"
echo "Patching deb..."
- dpkg -b "$TMPDIR" "${MYDIR}/${OUTPUT}"
+ dpkg -b "$TMPDIR" "${MYDIR}/${SERVER}"
rm -r "$TMPDIR"
- dpkg -i "${MYDIR}/${OUTPUT}"
+ dpkg -i "${MYDIR}/${SERVER}"
}
# Function deploys Tacker-server (installs missing mandatory files: upstart, default)
@@ -212,8 +216,9 @@ function deployTackerClient() {
cd $CLIREPO
python setup.py --command-packages=stdeb.command bdist_deb
cd "deb_dist"
+ CLIENT=$(echo python-python-tackerclient_*_all.deb)
cp $CLIENT $MYDIR
- dpkg -i $CLIENT
+ dpkg -i "${MYDIR}/${CLIENT}"
}
# Function removes the cloned git repositories
@@ -297,11 +302,6 @@ function orchestarte () {
class { 'tacker::db::mysql':
password => '${myPassword}',
- dbname => 'tacker',
- user => 'tacker',
- host => '127.0.0.1',
- charset => 'utf8',
- collate => 'utf8_general_ci',
allowed_hosts => ${allowed_hosts},
}
@@ -324,11 +324,12 @@ export OS_NO_CACHE='true'
export OS_TENANT_NAME='${service_tenant}'
export OS_PROJECT_NAME='${service_tenant}'
export OS_USERNAME='tacker'
-export OS_PASSWORD='tacker'
+export OS_PASSWORD='${myPassword}'
export OS_AUTH_URL='${auth_uri}'
export OS_DEFAULT_DOMAIN='default'
export OS_AUTH_STRATEGY='keystone'
-export OS_REGION_NAME='RegionOne'
+export OS_REGION_NAME='${myRegion}'
+export TACKER_ENDPOINT_TYPE='internalURL'
EOFRC
chmod +x tackerc
}