Merge "[BGPVPN] Correct BGPVPN plugin file"
authorSzilard Cserey <szilard.cserey@gmail.com>
Wed, 9 Mar 2016 20:05:12 +0000 (20:05 +0000)
committerGerrit Code Review <gerrit@172.30.200.206>
Wed, 9 Mar 2016 20:05:12 +0000 (20:05 +0000)
deploy/cloud/deploy.py
deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml
deploy/dea.py
deploy/dha_adapters/hardware_adapter.py
deploy/environments/execution_environment.py
deploy/environments/libvirt_environment.py
deploy/environments/virtual_fuel.py
prototypes/sfc_tacker/poc.tacker-up.sh

index 3d3017e..07d5d57 100644 (file)
@@ -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):
index e70d8ca..8515098 100644 (file)
@@ -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
index b5b63f7..1ac048e 100644 (file)
@@ -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']:
index 2cd5ab8..55bb400 100644 (file)
@@ -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)
index 38e5bcd..c2e7a0b 100644 (file)
@@ -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)
index 2a09117..380262c 100644 (file)
@@ -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):
index 0e7f273..6208218 100644 (file)
@@ -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):
index f7c9e11..be647b4 100755 (executable)
@@ -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
 }