Merge "Uplift Armband to Fuel Newton"
[armband.git] / patches / opnfv-fuel / upstream-backports / 0004-Fuel-rework-for-multiple-libvirt.patch
1 From: cristinapauna <cristina.pauna@enea.com>
2 Date: Fri, 25 Nov 2016 16:38:46 +0200
3 Subject: [PATCH] Fuel rework for multiple libvirt
4
5 The current fuel arhitecture assumes that all the VMs
6 (Jenkins slave, Fuel master and Target nodes) are all on
7 the same server. There is code that allows the Fuel master
8 to be on a different machine, but nothing for the Target nodes.
9 In Enea-Arm lab we have a different server for each.
10
11 This commit also adds specific templates for a virtual pod in
12 the Enea-Arm lab.
13
14 Therefore, the following changes are done:
15 - The default libvirt URI is the machine on which the Target nodes are
16 - The parameter libvirtUri was added in the dha.yaml file for fuel master
17 - All virsh calls have "-c" option to explicitly specify the uri; this parameter
18   is set only when libvirtUri is explicitly set in the yaml file
19 - The scenarios dha override now point to the arm template files
20 - The network templates are not needed for ARM, as the network infra is provided
21   by the server on which the Target node VMs reside; the folder is added here
22   just for consistency
23 - The target nodes are created with virsh rather than quemu when the nodes are
24   not on the same machine as Jenkins slave (similar logic to what is done for
25   remote Fuel master)
26
27 Initially only ha scenarios were successfully deployed on virtual pods
28 The default configuration is for ha scenarios and those have 5 target nodes
29 while on the noha scenarios there are 4. The noha scenarios failed because
30 it was trying to parse one extra node.
31
32 The dea and dha files need to be modified for each noha scenario so that the
33 nodes are properly configured.
34
35 Signed-off-by: cristinapauna <cristina.pauna@enea.com>
36 ---
37  deploy/dha_adapters/hardware_adapter.py            |  5 ++
38  deploy/dha_adapters/libvirt_adapter.py             | 42 ++++-----
39  deploy/environments/execution_environment.py       | 19 +++--
40  deploy/environments/libvirt_environment.py         | 59 ++++++++++++-
41  deploy/environments/virtual_fuel.py                |  8 +-
42  deploy/install_fuel_master.py                      |  2 +-
43  deploy/scenario/ha_heat_ceilometer_scenario.yaml   | 13 +--
44  .../ha_nfv-kvm_heat_ceilometer_scenario.yaml       | 13 +--
45  .../ha_nfv-ovs_heat_ceilometer_scenario.yaml       | 13 +--
46  deploy/scenario/ha_odl-bgpvpn_scenario.yaml        | 13 +--
47  .../ha_odl-l2_heat_ceilometer_scenario.yaml        | 13 +--
48  .../ha_odl-l2_sfc_heat_ceilometer_scenario.yaml    | 13 +--
49  .../ha_odl-l3_heat_ceilometer_scenario.yaml        | 13 +--
50  ...ha_onos_nofeature_heat_ceilometer_scenario.yaml | 13 +--
51  .../ha_onos_sfc_heat_ceilometer_scenario.yaml      | 13 +--
52  .../scenario/ha_vlan_heat_ceilometer_scenario.yaml | 13 +--
53  .../scenario/no-ha_heat_ceilometer_scenario.yaml   | 25 ++++++
54  .../no-ha_nfv-kvm_heat_ceilometer_scenario.yaml    | 25 ++++++
55  ...a_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml | 25 ++++++
56  .../no-ha_nfv-ovs_heat_ceilometer_scenario.yaml    | 26 +++++-
57  deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml     | 25 ++++++
58  .../no-ha_odl-l2_heat_ceilometer_scenario.yaml     | 25 ++++++
59  .../no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml | 25 ++++++
60  .../no-ha_odl-l3_heat_ceilometer_scenario.yaml     | 25 ++++++
61  ...ha_onos_nofeature_heat_ceilometer_scenario.yaml | 26 ++++++
62  .../no-ha_onos_sfc_heat_ceilometer_scenario.yaml   | 25 ++++++
63  .../no-ha_vlan_heat_ceilometer_scenario.yaml       | 25 ++++++
64  .../arm/virtual_environment/networks/.gitkeep      |  0
65  .../arm/virtual_environment/vms/compute.xml        | 57 +++++++++++++
66  .../arm/virtual_environment/vms/controller.xml     | 57 +++++++++++++
67  .../templates/arm/virtual_environment/vms/fuel.xml | 99 ++++++++++++++++++++++
68  31 files changed, 658 insertions(+), 97 deletions(-)
69  create mode 100644 deploy/templates/arm/virtual_environment/networks/.gitkeep
70  create mode 100644 deploy/templates/arm/virtual_environment/vms/compute.xml
71  create mode 100644 deploy/templates/arm/virtual_environment/vms/controller.xml
72  create mode 100644 deploy/templates/arm/virtual_environment/vms/fuel.xml
73
74 diff --git a/deploy/dha_adapters/hardware_adapter.py b/deploy/dha_adapters/hardware_adapter.py
75 index aa59581..cf3d77a 100644
76 --- a/deploy/dha_adapters/hardware_adapter.py
77 +++ b/deploy/dha_adapters/hardware_adapter.py
78 @@ -63,3 +63,8 @@ class HardwareAdapter(object):
79          vm_definition = self.dha_struct.get('define_vms')
80          if vm_definition:
81              return vm_definition.get(role)
82 +    def get_node_uri(self, node_id):
83 +        vm_libvirt_uri = self.get_node_property(node_id, 'libvirtUri')
84 +        if vm_libvirt_uri:
85 +            return '-c %s' % vm_libvirt_uri
86 +        return ''
87 diff --git a/deploy/dha_adapters/libvirt_adapter.py b/deploy/dha_adapters/libvirt_adapter.py
88 index a00f091..34535d1 100644
89 --- a/deploy/dha_adapters/libvirt_adapter.py
90 +++ b/deploy/dha_adapters/libvirt_adapter.py
91 @@ -43,21 +43,21 @@ class LibvirtAdapter(HardwareAdapter):
92      def node_power_off(self, node_id):
93          vm_name = self.get_node_property(node_id, 'libvirtName')
94          log('Power OFF Node %s' % vm_name)
95 -        state = exec_cmd('virsh domstate %s' % vm_name)
96 +        state = exec_cmd('virsh %s domstate %s' % (self.get_node_uri(node_id), vm_name))
97          if state == 'running':
98 -            exec_cmd('virsh destroy %s' % vm_name, False)
99 +            exec_cmd('virsh %s destroy %s' % (self.get_node_uri(node_id), vm_name), False)
100  
101      def node_power_on(self, node_id):
102          vm_name = self.get_node_property(node_id, 'libvirtName')
103          log('Power ON Node %s' % vm_name)
104 -        state = exec_cmd('virsh domstate %s' % vm_name)
105 +        state = exec_cmd('virsh %s domstate %s' % (self.get_node_uri(node_id), vm_name))
106          if state == 'shut off':
107 -            exec_cmd('virsh start %s' % vm_name)
108 +            exec_cmd('virsh %s start %s' % (self.get_node_uri(node_id), vm_name))
109  
110      def node_reset(self, node_id):
111          vm_name = self.get_node_property(node_id, 'libvirtName')
112          log('Reset Node %s' % vm_name)
113 -        exec_cmd('virsh reset %s' % vm_name)
114 +        exec_cmd('virsh %s reset %s' % (self.get_node_uri(node_id), vm_name))
115  
116      def translate(self, boot_order_list):
117          translated = []
118 @@ -73,7 +73,7 @@ class LibvirtAdapter(HardwareAdapter):
119          vm_name = self.get_node_property(node_id, 'libvirtName')
120          temp_dir = tempfile.mkdtemp()
121          log('Set boot order %s on Node %s' % (boot_order_list, vm_name))
122 -        resp = exec_cmd('virsh dumpxml %s' % vm_name)
123 +        resp = exec_cmd('virsh %s dumpxml %s' % (self.get_node_uri(node_id), vm_name))
124          xml_dump = etree.fromstring(resp, self.parser)
125          os = xml_dump.xpath('/domain/os')
126          for o in os:
127 @@ -92,12 +92,12 @@ class LibvirtAdapter(HardwareAdapter):
128          xml_file = temp_dir + '/%s.xml' % vm_name
129          with open(xml_file, 'w') as f:
130              tree.write(f, pretty_print=True, xml_declaration=True)
131 -        exec_cmd('virsh define %s' % xml_file)
132 +        exec_cmd('virsh %s define %s' % (self.get_node_uri(node_id), xml_file))
133          delete(temp_dir)
134  
135      def node_zero_mbr(self, node_id):
136          vm_name = self.get_node_property(node_id, 'libvirtName')
137 -        resp = exec_cmd('virsh dumpxml %s' % vm_name)
138 +        resp = exec_cmd('virsh %s dumpxml %s' % (self.get_node_uri(node_id), vm_name))
139          xml_dump = etree.fromstring(resp)
140          disks = xml_dump.xpath('/domain/devices/disk')
141          for disk in disks:
142 @@ -114,20 +114,20 @@ class LibvirtAdapter(HardwareAdapter):
143  
144      def node_eject_iso(self, node_id):
145          vm_name = self.get_node_property(node_id, 'libvirtName')
146 -        device = self.get_name_of_device(vm_name, 'cdrom')
147 -        exec_cmd('virsh change-media %s --eject %s --config --live'
148 -                 % (vm_name, device), False)
149 +        device = self.get_name_of_device(vm_name, 'cdrom', node_id)
150 +        exec_cmd('virsh %s change-media %s --eject %s --config --live'
151 +                 % (self.get_node_uri(node_id), vm_name, device), False)
152  
153      def node_insert_iso(self, node_id, iso_file):
154          vm_name = self.get_node_property(node_id, 'libvirtName')
155 -        device = self.get_name_of_device(vm_name, 'cdrom')
156 -        exec_cmd('virsh change-media %s --insert %s %s'
157 -                 % (vm_name, device, iso_file))
158 +        device = self.get_name_of_device(vm_name, 'cdrom', node_id)
159 +        exec_cmd('virsh %s change-media %s --insert %s %s'
160 +                 % (self.get_node_uri(node_id), vm_name, device, iso_file))
161  
162      def get_node_pxe_mac(self, node_id):
163          mac_list = []
164          vm_name = self.get_node_property(node_id, 'libvirtName')
165 -        resp = exec_cmd('virsh dumpxml %s' % vm_name)
166 +        resp = exec_cmd('virsh %s dumpxml %s' % (self.get_node_uri(node_id), vm_name))
167          xml_dump = etree.fromstring(resp)
168          interfaces = xml_dump.xpath('/domain/devices/interface')
169          for interface in interfaces:
170 @@ -136,8 +136,8 @@ class LibvirtAdapter(HardwareAdapter):
171                  mac_list.append(mac.get('address').lower())
172          return mac_list
173  
174 -    def get_name_of_device(self, vm_name, device_type):
175 -        resp = exec_cmd('virsh dumpxml %s' % vm_name)
176 +    def get_name_of_device(self, vm_name, device_type, node_id):
177 +        resp = exec_cmd('virsh %s dumpxml %s' % (self.get_node_uri(node_id), vm_name))
178          xml_dump = etree.fromstring(resp)
179          disks = xml_dump.xpath('/domain/devices/disk')
180          for disk in disks:
181 @@ -151,7 +151,7 @@ class LibvirtAdapter(HardwareAdapter):
182      def get_virt_net_conf_dir(self):
183          return self.dha_struct['virtNetConfDir']
184  
185 -    def upload_iso(self, iso_file):
186 +    def upload_iso(self, node_id, iso_file):
187          size = os.path.getsize(iso_file)
188          vol_name = os.path.basename(iso_file)
189          vol_xml = VOL_XML_TEMPLATE.format(name=vol_name, unit='bytes',
190 @@ -162,10 +162,10 @@ class LibvirtAdapter(HardwareAdapter):
191  
192          log(vol_xml)
193          pool = DEFAULT_POOL # FIXME
194 -        exec_cmd('virsh vol-create --pool %s %s' % (pool, fname))
195 -        vol_path = exec_cmd('virsh vol-path --pool %s %s' % (pool, vol_name))
196 +        exec_cmd('virsh %s vol-create --pool %s %s' % (self.get_node_uri(node_id), pool, fname))
197 +        vol_path = exec_cmd('virsh %s vol-path --pool %s %s' % (self.get_node_uri(node_id), pool, vol_name))
198  
199 -        exec_cmd('virsh vol-upload %s %s' % (vol_path, iso_file),
200 +        exec_cmd('virsh %s vol-upload %s %s' % (self.get_node_uri(node_id), vol_path, iso_file),
201                   attempts=5, delay=10, verbose=True)
202  
203          delete(fname)
204 diff --git a/deploy/environments/execution_environment.py b/deploy/environments/execution_environment.py
205 index 7a0b474..db25229 100644
206 --- a/deploy/environments/execution_environment.py
207 +++ b/deploy/environments/execution_environment.py
208 @@ -29,12 +29,12 @@ class ExecutionEnvironment(object):
209  
210      def delete_vm(self, node_id):
211          vm_name = self.dha.get_node_property(node_id, 'libvirtName')
212 -        r, c = exec_cmd('virsh dumpxml %s' % vm_name, False)
213 +        r, c = exec_cmd('virsh %s dumpxml %s' % (self.dha.get_node_uri(node_id), vm_name), False)
214          if c:
215              return
216 -        self.undefine_vm_delete_disk(r, vm_name)
217 +        self.undefine_vm_delete_disk(r, vm_name, node_id)
218  
219 -    def undefine_vm_delete_disk(self, printout, vm_name):
220 +    def undefine_vm_delete_disk(self, printout, vm_name, node_id):
221          disk_files = []
222          xml_dump = etree.fromstring(printout, self.parser)
223          disks = xml_dump.xpath('/domain/devices/disk')
224 @@ -45,8 +45,13 @@ class ExecutionEnvironment(object):
225                  if source_file:
226                      disk_files.append(source_file)
227          log('Deleting VM %s with disks %s' % (vm_name, disk_files))
228 -        exec_cmd('virsh destroy %s' % vm_name, False)
229 -        exec_cmd('virsh undefine --managed-save --remove-all-storage %s' % vm_name, False)
230 +        exec_cmd('virsh %s destroy %s' % (self.dha.get_node_uri(node_id), vm_name), False)
231 +        r, c = exec_cmd('virsh %s undefine --managed-save --remove-all-storage %s' %
232 +                        (self.dha.get_node_uri(node_id), vm_name), False)
233 +        if c:
234 +            exec_cmd('virsh %s undefine --managed-save --remove-all-storage --nvram %s' %
235 +                     (self.dha.get_node_uri(node_id), vm_name), False)
236 +
237          for file in disk_files:
238              delete(file)
239  
240 @@ -75,7 +80,7 @@ class ExecutionEnvironment(object):
241                  self.overwrite_xml(xml_element, value)
242  
243      def define_vm(self, vm_name, temp_vm_file, disk_path,
244 -                  vm_definition_overwrite):
245 +                  vm_definition_overwrite, node_id):
246          log('Creating VM %s with disks %s' % (vm_name, disk_path))
247          with open(temp_vm_file) as f:
248              vm_xml = etree.parse(f)
249 @@ -99,4 +104,4 @@ class ExecutionEnvironment(object):
250                  disk.append(source)
251          with open(temp_vm_file, 'w') as f:
252              vm_xml.write(f, pretty_print=True, xml_declaration=True)
253 -        exec_cmd('virsh define %s' % temp_vm_file)
254 +        exec_cmd('virsh %s define %s' % (self.dha.get_node_uri(node_id), temp_vm_file))
255 diff --git a/deploy/environments/libvirt_environment.py b/deploy/environments/libvirt_environment.py
256 index 07a47fd..08d669b 100644
257 --- a/deploy/environments/libvirt_environment.py
258 +++ b/deploy/environments/libvirt_environment.py
259 @@ -12,6 +12,9 @@ from lxml import etree
260  import glob
261  from execution_environment import ExecutionEnvironment
262  import tempfile
263 +import os
264 +import re
265 +import time
266  
267  from common import (
268      exec_cmd,
269 @@ -21,6 +24,25 @@ from common import (
270      delete,
271  )
272  
273 +VOL_XML_TEMPLATE = '''<volume type='file'>
274 +  <name>{name}</name>
275 +  <capacity unit='{unit}'>{size!s}</capacity>
276 +  <target>
277 +    <format type='{format_type}'/>
278 +  </target>
279 +</volume>'''
280 +
281 +DEFAULT_POOL = 'jenkins'
282 +
283 +def get_size_and_unit(s):
284 +    p = re.compile('^(\d+)\s*(\D+)')
285 +    m = p.match(s)
286 +    if m == None:
287 +        return None, None
288 +    size = m.groups()[0]
289 +    unit = m.groups()[1]
290 +    return size, unit
291 +
292  
293  class LibvirtEnvironment(ExecutionEnvironment):
294  
295 @@ -33,10 +55,39 @@ class LibvirtEnvironment(ExecutionEnvironment):
296          self.node_ids = self.dha.get_all_node_ids()
297          self.net_names = self.collect_net_names()
298  
299 -    def create_storage(self, node_id, disk_path, disk_sizes):
300 +    def create_volume(self, pool, name, su, node_id, temp_dir, img_type='raw'):
301 +        log('Creating image using Libvirt volumes in pool %s, name: %s, uri: %s' %
302 +            (pool, name, self.dha.get_node_uri(node_id)))
303 +        size, unit = get_size_and_unit(su)
304 +        if size == None:
305 +            err('Could not determine size and unit of %s' % s)
306 +
307 +        vol_xml = VOL_XML_TEMPLATE.format(name=name, unit=unit, size=size,
308 +                                          format_type=img_type)
309 +        fname = os.path.join(temp_dir, '%s_vol.xml' % name)
310 +        with file(fname, 'w') as f:
311 +            f.write(vol_xml)
312 +
313 +        exec_cmd('virsh %s vol-create --pool %s %s' %
314 +                 (self.dha.get_node_uri(node_id), pool, fname))
315 +        vol_path = exec_cmd('virsh %s vol-path --pool %s %s' %
316 +                            (self.dha.get_node_uri(node_id), pool, name))
317 +
318 +        delete(fname)
319 +        return vol_path
320 +
321 +
322 +    def create_storage(self, node_id, disk_path, disk_sizes, temp_dir):
323          role = self.dea.get_node_main_role(node_id, self.fuel_node_id)
324          disk_size = disk_sizes[role]
325 -        exec_cmd('qemu-img create -f raw %s %s' % (disk_path, disk_size))
326 +        if os.environ.get('LIBVIRT_DEFAULT_URI') == None:
327 +            exec_cmd('qemu-img create -f raw %s %s' % (disk_path, disk_size))
328 +        else:
329 +            pool = DEFAULT_POOL # FIXME
330 +            name = os.path.basename(disk_path)
331 +            disk_path = self.create_volume(pool, name, disk_size, node_id, temp_dir)
332 +        return disk_path
333 +
334  
335      def create_vms(self):
336          temp_dir = tempfile.mkdtemp()
337 @@ -48,13 +99,13 @@ class LibvirtEnvironment(ExecutionEnvironment):
338                                           node_id, 'libvirtTemplate'))
339              check_file_exists(vm_template)
340              disk_path = '%s/%s.raw' % (self.storage_dir, vm_name)
341 -            self.create_storage(node_id, disk_path, disk_sizes)
342 +            disk_path = self.create_storage(node_id, disk_path, disk_sizes, temp_dir)
343              temp_vm_file = '%s/%s' % (temp_dir, vm_name)
344              exec_cmd('cp %s %s' % (vm_template, temp_vm_file))
345              vm_definition_overwrite = self.dha.get_vm_definition(
346                   self.dea.get_node_main_role(node_id, self.fuel_node_id))
347              self.define_vm(vm_name, temp_vm_file, disk_path,
348 -                           vm_definition_overwrite)
349 +                           vm_definition_overwrite, node_id)
350          delete(temp_dir)
351  
352      def start_vms(self):
353 diff --git a/deploy/environments/virtual_fuel.py b/deploy/environments/virtual_fuel.py
354 index fcfa532..5f50f40 100644
355 --- a/deploy/environments/virtual_fuel.py
356 +++ b/deploy/environments/virtual_fuel.py
357 @@ -99,8 +99,10 @@ class VirtualFuel(ExecutionEnvironment):
358          with file(fname, 'w') as f:
359              f.write(vol_xml)
360  
361 -        exec_cmd('virsh vol-create --pool %s %s' % (pool, fname))
362 -        vol_path = exec_cmd('virsh vol-path --pool %s %s' % (pool, name))
363 +        exec_cmd('virsh %s vol-create --pool %s %s' %
364 +                 (self.dha.get_node_uri(self.fuel_node_id), pool, fname))
365 +        vol_path = exec_cmd('virsh %s vol-path --pool %s %s' %
366 +                            (self.dha.get_node_uri(self.fuel_node_id), pool, name))
367  
368          delete(fname)
369  
370 @@ -131,7 +133,7 @@ class VirtualFuel(ExecutionEnvironment):
371          vm_definition_overwrite = self.dha.get_vm_definition('fuel')
372  
373          self.define_vm(self.vm_name, self.temp_vm_file, disk_path,
374 -                       vm_definition_overwrite)
375 +                       vm_definition_overwrite, self.fuel_node_id)
376  
377      def setup_environment(self):
378          self.cleanup_environment()
379 diff --git a/deploy/install_fuel_master.py b/deploy/install_fuel_master.py
380 index 2d89c8e..2615818 100644
381 --- a/deploy/install_fuel_master.py
382 +++ b/deploy/install_fuel_master.py
383 @@ -59,7 +59,7 @@ class InstallFuelMaster(object):
384  
385          if os.environ.get('LIBVIRT_DEFAULT_URI'):
386              log('Upload ISO to pool')
387 -            self.iso_file = self.dha.upload_iso(self.iso_file)
388 +            self.iso_file = self.dha.upload_iso(self.fuel_node_id, self.iso_file)
389          else:
390              log('Zero the MBR')
391              self.dha.node_zero_mbr(self.fuel_node_id)
392 diff --git a/deploy/scenario/ha_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_heat_ceilometer_scenario.yaml
393 index 4051c47..78fa80d 100644
394 --- a/deploy/scenario/ha_heat_ceilometer_scenario.yaml
395 +++ b/deploy/scenario/ha_heat_ceilometer_scenario.yaml
396 @@ -58,22 +58,23 @@ dha-override-config:
397    nodes:
398    - id: 1
399      libvirtName: controller1
400 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
401 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
402    - id: 2
403      libvirtName: controller2
404 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
405 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
406    - id: 3
407      libvirtName: controller3
408 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
409 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
410    - id: 4
411      libvirtName: compute1
412 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
413 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
414    - id: 5
415      libvirtName: compute2
416 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
417 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
418    - id: 6
419      libvirtName: fuel-master
420 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
421 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
422 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
423      isFuel: yes
424      username: root
425      password: r00tme
426 diff --git a/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario.yaml
427 index 1217f72..bcdda61 100644
428 --- a/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario.yaml
429 +++ b/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario.yaml
430 @@ -145,22 +145,23 @@ dha-override-config:
431    nodes:
432    - id: 1
433      libvirtName: controller1
434 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
435 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
436    - id: 2
437      libvirtName: controller2
438 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
439 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
440    - id: 3
441      libvirtName: controller3
442 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
443 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
444    - id: 4
445      libvirtName: compute1
446 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
447 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
448    - id: 5
449      libvirtName: compute2
450 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
451 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
452    - id: 6
453      libvirtName: fuel-master
454 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
455 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
456 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
457      isFuel: yes
458      username: root
459      password: r00tme
460 diff --git a/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario.yaml
461 index 51deb4e..bee2d1a 100644
462 --- a/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario.yaml
463 +++ b/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario.yaml
464 @@ -107,22 +107,23 @@ dha-override-config:
465    nodes:
466    - id: 1
467      libvirtName: controller1
468 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
469 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
470    - id: 2
471      libvirtName: controller2
472 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
473 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
474    - id: 3
475      libvirtName: controller3
476 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
477 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
478    - id: 4
479      libvirtName: compute1
480 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
481 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
482    - id: 5
483      libvirtName: compute2
484 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
485 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
486    - id: 6
487      libvirtName: fuel-master
488 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
489 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
490 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
491      isFuel: yes
492      username: root
493      password: r00tme
494 diff --git a/deploy/scenario/ha_odl-bgpvpn_scenario.yaml b/deploy/scenario/ha_odl-bgpvpn_scenario.yaml
495 index 7d52e77..46efc4b 100644
496 --- a/deploy/scenario/ha_odl-bgpvpn_scenario.yaml
497 +++ b/deploy/scenario/ha_odl-bgpvpn_scenario.yaml
498 @@ -77,22 +77,23 @@ dha-override-config:
499    nodes:
500    - id: 1
501      libvirtName: controller1
502 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
503 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
504    - id: 2
505      libvirtName: controller2
506 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
507 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
508    - id: 3
509      libvirtName: controller3
510 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
511 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
512    - id: 4
513      libvirtName: compute1
514 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
515 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
516    - id: 5
517      libvirtName: compute2
518 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
519 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
520    - id: 6
521      libvirtName: fuel-master
522 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
523 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
524 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
525      isFuel: yes
526      username: root
527      password: r00tme
528 diff --git a/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario.yaml
529 index 90c89ae..50dde30 100644
530 --- a/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario.yaml
531 +++ b/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario.yaml
532 @@ -77,22 +77,23 @@ dha-override-config:
533    nodes:
534    - id: 1
535      libvirtName: controller1
536 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
537 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
538    - id: 2
539      libvirtName: controller2
540 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
541 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
542    - id: 3
543      libvirtName: controller3
544 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
545 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
546    - id: 4
547      libvirtName: compute1
548 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
549 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
550    - id: 5
551      libvirtName: compute2
552 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
553 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
554    - id: 6
555      libvirtName: fuel-master
556 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
557 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
558 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
559      isFuel: yes
560      username: root
561      password: r00tme
562 diff --git a/deploy/scenario/ha_odl-l2_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_odl-l2_sfc_heat_ceilometer_scenario.yaml
563 index c478948..e20ec1a 100644
564 --- a/deploy/scenario/ha_odl-l2_sfc_heat_ceilometer_scenario.yaml
565 +++ b/deploy/scenario/ha_odl-l2_sfc_heat_ceilometer_scenario.yaml
566 @@ -95,22 +95,23 @@ dha-override-config:
567    nodes:
568    - id: 1
569      libvirtName: controller1
570 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
571 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
572    - id: 2
573      libvirtName: controller2
574 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
575 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
576    - id: 3
577      libvirtName: controller3
578 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
579 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
580    - id: 4
581      libvirtName: compute1
582 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
583 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
584    - id: 5
585      libvirtName: compute2
586 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
587 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
588    - id: 6
589      libvirtName: fuel-master
590 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
591 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
592 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
593      isFuel: yes
594      username: root
595      password: r00tme
596 diff --git a/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario.yaml
597 index 967e7d2..322dd27 100644
598 --- a/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario.yaml
599 +++ b/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario.yaml
600 @@ -93,22 +93,23 @@ dha-override-config:
601    nodes:
602    - id: 1
603      libvirtName: controller1
604 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
605 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
606    - id: 2
607      libvirtName: controller2
608 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
609 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
610    - id: 3
611      libvirtName: controller3
612 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
613 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
614    - id: 4
615      libvirtName: compute1
616 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
617 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
618    - id: 5
619      libvirtName: compute2
620 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
621 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
622    - id: 6
623      libvirtName: fuel-master
624 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
625 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
626 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
627      isFuel: yes
628      username: root
629      password: r00tme
630 diff --git a/deploy/scenario/ha_onos_nofeature_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_onos_nofeature_heat_ceilometer_scenario.yaml
631 index f813458..88b8f6b 100644
632 --- a/deploy/scenario/ha_onos_nofeature_heat_ceilometer_scenario.yaml
633 +++ b/deploy/scenario/ha_onos_nofeature_heat_ceilometer_scenario.yaml
634 @@ -88,22 +88,23 @@ dha-override-config:
635    nodes:
636    - id: 1
637      libvirtName: controller1
638 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
639 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
640    - id: 2
641      libvirtName: controller2
642 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
643 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
644    - id: 3
645      libvirtName: controller3
646 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
647 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
648    - id: 4
649      libvirtName: compute1
650 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
651 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
652    - id: 5
653      libvirtName: compute2
654 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
655 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
656    - id: 6
657      libvirtName: fuel-master
658 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
659 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
660 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
661      isFuel: yes
662      username: root
663      password: r00tme
664 diff --git a/deploy/scenario/ha_onos_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_onos_sfc_heat_ceilometer_scenario.yaml
665 index 32fbfcf..c390172 100644
666 --- a/deploy/scenario/ha_onos_sfc_heat_ceilometer_scenario.yaml
667 +++ b/deploy/scenario/ha_onos_sfc_heat_ceilometer_scenario.yaml
668 @@ -68,22 +68,23 @@ dha-override-config:
669    nodes:
670    - id: 1
671      libvirtName: controller1
672 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
673 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
674    - id: 2
675      libvirtName: controller2
676 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
677 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
678    - id: 3
679      libvirtName: controller3
680 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
681 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
682    - id: 4
683      libvirtName: compute1
684 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
685 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
686    - id: 5
687      libvirtName: compute2
688 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
689 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
690    - id: 6
691      libvirtName: fuel-master
692 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
693 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
694 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
695      isFuel: yes
696      username: root
697      password: r00tme
698 diff --git a/deploy/scenario/ha_vlan_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_vlan_heat_ceilometer_scenario.yaml
699 index d1d5191..65b8b20 100644
700 --- a/deploy/scenario/ha_vlan_heat_ceilometer_scenario.yaml
701 +++ b/deploy/scenario/ha_vlan_heat_ceilometer_scenario.yaml
702 @@ -102,22 +102,23 @@ dha-override-config:
703    nodes:
704    - id: 1
705      libvirtName: controller1
706 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
707 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
708    - id: 2
709      libvirtName: controller2
710 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
711 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
712    - id: 3
713      libvirtName: controller3
714 -    libvirtTemplate: templates/virtual_environment/vms/controller.xml
715 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
716    - id: 4
717      libvirtName: compute1
718 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
719 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
720    - id: 5
721      libvirtName: compute2
722 -    libvirtTemplate: templates/virtual_environment/vms/compute.xml
723 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
724    - id: 6
725      libvirtName: fuel-master
726 -    libvirtTemplate: templates/virtual_environment/vms/fuel.xml
727 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
728 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
729      isFuel: yes
730      username: root
731      password: r00tme
732 diff --git a/deploy/scenario/no-ha_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_heat_ceilometer_scenario.yaml
733 index 3dd5f84..d738154 100644
734 --- a/deploy/scenario/no-ha_heat_ceilometer_scenario.yaml
735 +++ b/deploy/scenario/no-ha_heat_ceilometer_scenario.yaml
736 @@ -41,17 +41,42 @@ dea-override-config:
737    - id: 1
738      interfaces: interfaces_1
739      role: mongo,controller,congress
740 +    transformations: transformations_1
741    - id: 2
742      interfaces: interfaces_1
743      role: ceph-osd,compute
744 +    transformations: transformations_2
745    - id: 3
746      interfaces: interfaces_1
747      role: ceph-osd,compute
748 +    transformations: transformations_2
749    - id: 4
750      interfaces: interfaces_1
751      role: ceph-osd,compute
752 +    transformations: transformations_2
753  
754  dha-override-config:
755 + nodes:
756 +  - id: 1
757 +    libvirtName: controller1
758 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
759 +  - id: 2
760 +    libvirtName: compute1
761 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
762 +  - id: 3
763 +    libvirtName: compute2
764 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
765 +  - id: 4
766 +    libvirtName: compute3
767 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
768 +  - id: 5
769 +    libvirtName: fuel-master
770 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
771 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
772 +    isFuel: yes
773 +    username: root
774 +    password: r00tme
775 +
776  #  disks:
777  #    contrail: 500G
778  
779 diff --git a/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario.yaml
780 index 4661a26..7ade095 100644
781 --- a/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario.yaml
782 +++ b/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario.yaml
783 @@ -48,15 +48,19 @@ dea-override-config:
784    - id: 1
785      interfaces: interfaces_1
786      role: mongo,controller
787 +    transformations: transformations_1
788    - id: 2
789      interfaces: interfaces_1
790      role: ceph-osd
791 +    transformations: transformations_2
792    - id: 3
793      interfaces: interfaces_1
794      role: compute
795 +    transformations: transformations_2
796    - id: 4
797      interfaces: interfaces_1
798      role: compute
799 +    transformations: transformations_2
800  
801    settings:
802      editable:
803 @@ -141,6 +145,27 @@ dea-override-config:
804            weight: 10
805  
806  dha-override-config:
807 + nodes:
808 +  - id: 1
809 +    libvirtName: controller1
810 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
811 +  - id: 2
812 +    libvirtName: compute1
813 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
814 +  - id: 3
815 +    libvirtName: compute2
816 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
817 +  - id: 4
818 +    libvirtName: compute3
819 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
820 +  - id: 5
821 +    libvirtName: fuel-master
822 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
823 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
824 +    isFuel: yes
825 +    username: root
826 +    password: r00tme
827 +
828  #  disks:
829  #    contrail: 500G
830  
831 diff --git a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml
832 index 87364e8..a3f0864 100644
833 --- a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml
834 +++ b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml
835 @@ -55,15 +55,19 @@ dea-override-config:
836    - id: 1
837      interfaces: interfaces_1
838      role: mongo,controller
839 +    transformations: transformations_1
840    - id: 2
841      interfaces: interfaces_1
842      role: ceph-osd,compute
843 +    transformations: transformations_2
844    - id: 3
845      interfaces: interfaces_1
846      role: ceph-osd,compute
847 +    transformations: transformations_2
848    - id: 4
849      interfaces: interfaces_1
850      role: ceph-osd,compute
851 +    transformations: transformations_2
852    settings:
853      editable:
854        additional_components:
855 @@ -104,6 +108,27 @@ dea-override-config:
856            weight: 30
857  
858  dha-override-config:
859 + nodes:
860 +  - id: 1
861 +    libvirtName: controller1
862 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
863 +  - id: 2
864 +    libvirtName: compute1
865 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
866 +  - id: 3
867 +    libvirtName: compute2
868 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
869 +  - id: 4
870 +    libvirtName: compute3
871 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
872 +  - id: 5
873 +    libvirtName: fuel-master
874 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
875 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
876 +    isFuel: yes
877 +    username: root
878 +    password: r00tme
879 +
880  #  disks:
881  #    contrail: 500G
882  
883 diff --git a/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario.yaml
884 index 7ab76cb..f4e0adc 100644
885 --- a/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario.yaml
886 +++ b/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario.yaml
887 @@ -56,19 +56,22 @@ dea-override-config:
888    - id: 1
889      interfaces: interfaces_vlan
890      role: mongo,controller
891 +    transformations: transformations_1
892    - id: 2
893      interfaces: interfaces_dpdk
894      role: ceph-osd,compute
895      attributes: attributes_1
896 +    transformations: transformations_2
897    - id: 3
898      interfaces: interfaces_dpdk
899      role: ceph-osd,compute
900      attributes: attributes_1
901 +    transformations: transformations_2
902    - id: 4
903      interfaces: interfaces_dpdk
904      role: ceph-osd,compute
905      attributes: attributes_1
906 -
907 +    transformations: transformations_2
908    attributes_1:
909      hugepages:
910        dpdk:
911 @@ -102,6 +105,27 @@ dea-override-config:
912        vlan_start: null
913  
914  dha-override-config:
915 + nodes:
916 +  - id: 1
917 +    libvirtName: controller1
918 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
919 +  - id: 2
920 +    libvirtName: compute1
921 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
922 +  - id: 3
923 +    libvirtName: compute2
924 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
925 +  - id: 4
926 +    libvirtName: compute3
927 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
928 +  - id: 5
929 +    libvirtName: fuel-master
930 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
931 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
932 +    isFuel: yes
933 +    username: root
934 +    password: r00tme
935 +
936  #  disks:
937  #    contrail: 500G
938  
939 diff --git a/deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml b/deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml
940 index 6f21ea2..e92a741 100644
941 --- a/deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml
942 +++ b/deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml
943 @@ -60,17 +60,42 @@ dea-override-config:
944    - id: 1
945      interfaces: interfaces_1
946      role: mongo,controller
947 +    transformations: transformations_1
948    - id: 2
949      interfaces: interfaces_1
950      role: ceph-osd,opendaylight
951 +    transformations: transformations_2
952    - id: 3
953      interfaces: interfaces_1
954      role: ceph-osd,compute
955 +    transformations: transformations_2
956    - id: 4
957      interfaces: interfaces_1
958      role: ceph-osd,compute
959 +    transformations: transformations_2
960  
961  dha-override-config:
962 + nodes:
963 +  - id: 1
964 +    libvirtName: controller1
965 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
966 +  - id: 2
967 +    libvirtName: compute1
968 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
969 +  - id: 3
970 +    libvirtName: compute2
971 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
972 +  - id: 4
973 +    libvirtName: compute3
974 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
975 +  - id: 5
976 +    libvirtName: fuel-master
977 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
978 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
979 +    isFuel: yes
980 +    username: root
981 +    password: r00tme
982 +
983  #  disks:
984  #    contrail: 500G
985  
986 diff --git a/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario.yaml
987 index f8787d7..1efa89a 100644
988 --- a/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario.yaml
989 +++ b/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario.yaml
990 @@ -61,17 +61,42 @@ dea-override-config:
991    - id: 1
992      interfaces: interfaces_1
993      role: mongo,controller
994 +    transformations: transformations_1
995    - id: 2
996      interfaces: interfaces_1
997      role: ceph-osd,opendaylight
998 +    transformations: transformations_2
999    - id: 3
1000      interfaces: interfaces_1
1001      role: ceph-osd,compute
1002 +    transformations: transformations_2
1003    - id: 4
1004      interfaces: interfaces_1
1005      role: ceph-osd,compute
1006 +    transformations: transformations_2
1007  
1008  dha-override-config:
1009 + nodes:
1010 +  - id: 1
1011 +    libvirtName: controller1
1012 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
1013 +  - id: 2
1014 +    libvirtName: compute1
1015 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1016 +  - id: 3
1017 +    libvirtName: compute2
1018 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1019 +  - id: 4
1020 +    libvirtName: compute3
1021 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1022 +  - id: 5
1023 +    libvirtName: fuel-master
1024 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
1025 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
1026 +    isFuel: yes
1027 +    username: root
1028 +    password: r00tme
1029 +
1030  #  disks:
1031  #    contrail: 500G
1032  
1033 diff --git a/deploy/scenario/no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml
1034 index 90a45d5..b1fe773 100644
1035 --- a/deploy/scenario/no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml
1036 +++ b/deploy/scenario/no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml
1037 @@ -80,17 +80,42 @@ dea-override-config:
1038    - id: 1
1039      interfaces: interfaces_1
1040      role: mongo,controller,tacker
1041 +    transformations: transformations_1
1042    - id: 2
1043      interfaces: interfaces_1
1044      role: ceph-osd,opendaylight
1045 +    transformations: transformations_2
1046    - id: 3
1047      interfaces: interfaces_1
1048      role: ceph-osd,compute
1049 +    transformations: transformations_2
1050    - id: 4
1051      interfaces: interfaces_1
1052      role: ceph-osd,compute
1053 +    transformations: transformations_2
1054  
1055  dha-override-config:
1056 + nodes:
1057 +  - id: 1
1058 +    libvirtName: controller1
1059 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
1060 +  - id: 2
1061 +    libvirtName: compute1
1062 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1063 +  - id: 3
1064 +    libvirtName: compute2
1065 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1066 +  - id: 4
1067 +    libvirtName: compute3
1068 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1069 +  - id: 5
1070 +    libvirtName: fuel-master
1071 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
1072 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
1073 +    isFuel: yes
1074 +    username: root
1075 +    password: r00tme
1076 +
1077  #  disks:
1078  #    contrail: 500G
1079  
1080 diff --git a/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario.yaml
1081 index 0c8415f..b59a049 100644
1082 --- a/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario.yaml
1083 +++ b/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario.yaml
1084 @@ -71,15 +71,19 @@ dea-override-config:
1085    - id: 1
1086      interfaces: interfaces_1
1087      role: mongo,controller
1088 +    transformations: transformations_1
1089    - id: 2
1090      interfaces: interfaces_1
1091      role: ceph-osd,opendaylight
1092 +    transformations: transformations_2
1093    - id: 3
1094      interfaces: interfaces_1
1095      role: ceph-osd,compute
1096 +    transformations: transformations_2
1097    - id: 4
1098      interfaces: interfaces_1
1099      role: ceph-osd,compute
1100 +    transformations: transformations_2
1101    settings:
1102      editable:
1103        public_network_assignment:
1104 @@ -87,6 +91,27 @@ dea-override-config:
1105            value: true
1106  
1107  dha-override-config:
1108 + nodes:
1109 +  - id: 1
1110 +    libvirtName: controller1
1111 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
1112 +  - id: 2
1113 +    libvirtName: compute1
1114 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1115 +  - id: 3
1116 +    libvirtName: compute2
1117 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1118 +  - id: 4
1119 +    libvirtName: compute3
1120 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1121 +  - id: 5
1122 +    libvirtName: fuel-master
1123 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
1124 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
1125 +    isFuel: yes
1126 +    username: root
1127 +    password: r00tme
1128 +
1129  #  disks:
1130  #    contrail: 500G
1131  
1132 diff --git a/deploy/scenario/no-ha_onos_nofeature_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_onos_nofeature_heat_ceilometer_scenario.yaml
1133 index f5c00f0..e51dd56 100644
1134 --- a/deploy/scenario/no-ha_onos_nofeature_heat_ceilometer_scenario.yaml
1135 +++ b/deploy/scenario/no-ha_onos_nofeature_heat_ceilometer_scenario.yaml
1136 @@ -68,21 +68,47 @@ dea-override-config:
1137    - id: 1
1138      interfaces: interfaces_1
1139      role: mongo,controller,onos
1140 +    transformations: transformations_1
1141    - id: 2
1142      interfaces: interfaces_1
1143      role: ceph-osd,compute
1144 +    transformations: transformations_2
1145    - id: 3
1146      interfaces: interfaces_1
1147      role: ceph-osd,compute
1148 +    transformations: transformations_2
1149    - id: 4
1150      interfaces: interfaces_1
1151      role: ceph-osd,compute
1152 +    transformations: transformations_2
1153    settings:
1154      editable:
1155        public_network_assignment:
1156          assign_to_all_nodes:
1157            value: true
1158 +
1159  dha-override-config:
1160 + nodes:
1161 +  - id: 1
1162 +    libvirtName: controller1
1163 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
1164 +  - id: 2
1165 +    libvirtName: compute1
1166 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1167 +  - id: 3
1168 +    libvirtName: compute2
1169 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1170 +  - id: 4
1171 +    libvirtName: compute3
1172 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1173 +  - id: 5
1174 +    libvirtName: fuel-master
1175 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
1176 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
1177 +    isFuel: yes
1178 +    username: root
1179 +    password: r00tme
1180 +
1181  #  disks:
1182  #    contrail: 500G
1183  
1184 diff --git a/deploy/scenario/no-ha_onos_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_onos_sfc_heat_ceilometer_scenario.yaml
1185 index 587346e..21a2be2 100644
1186 --- a/deploy/scenario/no-ha_onos_sfc_heat_ceilometer_scenario.yaml
1187 +++ b/deploy/scenario/no-ha_onos_sfc_heat_ceilometer_scenario.yaml
1188 @@ -48,21 +48,46 @@ dea-override-config:
1189    - id: 1
1190      interfaces: interfaces_1
1191      role: mongo,controller,onos
1192 +    transformations: transformations_1
1193    - id: 2
1194      interfaces: interfaces_1
1195      role: ceph-osd,compute
1196 +    transformations: transformations_2
1197    - id: 3
1198      interfaces: interfaces_1
1199      role: ceph-osd,compute
1200 +    transformations: transformations_2
1201    - id: 4
1202      interfaces: interfaces_1
1203      role: ceph-osd,compute
1204 +    transformations: transformations_2
1205    settings:
1206      editable:
1207        public_network_assignment:
1208          assign_to_all_nodes:
1209            value: true
1210  dha-override-config:
1211 + nodes:
1212 +  - id: 1
1213 +    libvirtName: controller1
1214 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
1215 +  - id: 2
1216 +    libvirtName: compute1
1217 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1218 +  - id: 3
1219 +    libvirtName: compute2
1220 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1221 +  - id: 4
1222 +    libvirtName: compute3
1223 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1224 +  - id: 5
1225 +    libvirtName: fuel-master
1226 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
1227 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
1228 +    isFuel: yes
1229 +    username: root
1230 +    password: r00tme
1231 +
1232  #  disks:
1233  #    contrail: 500G
1234  
1235 diff --git a/deploy/scenario/no-ha_vlan_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_vlan_heat_ceilometer_scenario.yaml
1236 index 567ea98..ada5b7e 100644
1237 --- a/deploy/scenario/no-ha_vlan_heat_ceilometer_scenario.yaml
1238 +++ b/deploy/scenario/no-ha_vlan_heat_ceilometer_scenario.yaml
1239 @@ -45,15 +45,19 @@ dea-override-config:
1240    - id: 1
1241      interfaces: interfaces_1
1242      role: mongo,controller
1243 +    transformations: transformations_1
1244    - id: 2
1245      interfaces: interfaces_1
1246      role: ceph-osd,compute
1247 +    transformations: transformations_2
1248    - id: 3
1249      interfaces: interfaces_1
1250      role: ceph-osd,compute
1251 +    transformations: transformations_2
1252    - id: 4
1253      interfaces: interfaces_1
1254      role: ceph-osd,compute
1255 +    transformations: transformations_2
1256    settings:
1257      editable:
1258        additional_components:
1259 @@ -94,6 +98,27 @@ dea-override-config:
1260            weight: 30
1261  
1262  dha-override-config:
1263 + nodes:
1264 +  - id: 1
1265 +    libvirtName: controller1
1266 +    libvirtTemplate: templates/arm/virtual_environment/vms/controller.xml
1267 +  - id: 2
1268 +    libvirtName: compute1
1269 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1270 +  - id: 3
1271 +    libvirtName: compute2
1272 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1273 +  - id: 4
1274 +    libvirtName: compute3
1275 +    libvirtTemplate: templates/arm/virtual_environment/vms/compute.xml
1276 +  - id: 5
1277 +    libvirtName: fuel-master
1278 +    libvirtTemplate: templates/arm/virtual_environment/vms/fuel.xml
1279 +    libvirtUri: qemu+ssh://jenkins@10.0.2.5/system
1280 +    isFuel: yes
1281 +    username: root
1282 +    password: r00tme
1283 +
1284  # These overrides only take effect for virtual deployment scenarios
1285  
1286  ##############################################################################
1287 diff --git a/deploy/templates/arm/virtual_environment/networks/.gitkeep b/deploy/templates/arm/virtual_environment/networks/.gitkeep
1288 new file mode 100644
1289 index 0000000..e69de29
1290 diff --git a/deploy/templates/arm/virtual_environment/vms/compute.xml b/deploy/templates/arm/virtual_environment/vms/compute.xml
1291 new file mode 100644
1292 index 0000000..db3ba29
1293 --- /dev/null
1294 +++ b/deploy/templates/arm/virtual_environment/vms/compute.xml
1295 @@ -0,0 +1,57 @@
1296 +<domain type='kvm'>
1297 +  <name>compute</name>
1298 +  <memory unit='KiB'>8392704</memory>
1299 +  <currentMemory unit='KiB'>8392704</currentMemory>
1300 +  <vcpu placement='static'>6</vcpu>
1301 +  <os>
1302 +    <type arch='aarch64' machine='virt-2.6'>hvm</type>
1303 +    <loader readonly='yes' type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
1304 +  </os>
1305 +  <features>
1306 +    <gic version='3'/>
1307 +  </features>
1308 +  <cpu mode='host-model'>
1309 +    <model fallback='allow'/>
1310 +  </cpu>
1311 +  <clock offset='utc'/>
1312 +  <on_poweroff>destroy</on_poweroff>
1313 +  <on_reboot>restart</on_reboot>
1314 +  <on_crash>restart</on_crash>
1315 +  <devices>
1316 +    <emulator>/usr/bin/kvm</emulator>
1317 +    <disk type='file' device='disk'>
1318 +      <driver name='qemu' type='raw' cache='none' io='native'/>
1319 +      <source file='disk.raw'/>
1320 +      <target dev='vda' bus='virtio'/>
1321 +      <boot order='2'/>
1322 +      <address type='virtio-mmio'/>
1323 +    </disk>
1324 +    <controller type='scsi' index='0' model='virtio-scsi'>
1325 +      <address type='virtio-mmio'/>
1326 +    </controller>
1327 +    <controller type='pci' index='0' model='pcie-root'/>
1328 +    <interface type='bridge'>
1329 +      <source bridge='admin8_br'/>
1330 +      <model type='virtio'/>
1331 +      <boot order='1'/>
1332 +      <address type='virtio-mmio'/>
1333 +    </interface>
1334 +    <interface type='bridge'>
1335 +      <source bridge='public8_br'/>
1336 +      <model type='virtio'/>
1337 +      <address type='virtio-mmio'/>
1338 +    </interface>
1339 +    <interface type='bridge'>
1340 +      <source bridge='trunk8_br'/>
1341 +      <model type='virtio'/>
1342 +      <address type='virtio-mmio'/>
1343 +    </interface>
1344 +    <serial type='pty'>
1345 +      <target port='0'/>
1346 +    </serial>
1347 +    <console type='pty'>
1348 +      <target type='serial' port='0'/>
1349 +    </console>
1350 +  </devices>
1351 +</domain>
1352 +
1353 diff --git a/deploy/templates/arm/virtual_environment/vms/controller.xml b/deploy/templates/arm/virtual_environment/vms/controller.xml
1354 new file mode 100644
1355 index 0000000..6bd0385
1356 --- /dev/null
1357 +++ b/deploy/templates/arm/virtual_environment/vms/controller.xml
1358 @@ -0,0 +1,57 @@
1359 +<domain type='kvm'>
1360 +  <name>controller</name>
1361 +  <memory unit='KiB'>8392704</memory>
1362 +  <currentMemory unit='KiB'>8392704</currentMemory>
1363 +  <vcpu placement='static'>6</vcpu>
1364 +  <os>
1365 +    <type arch='aarch64' machine='virt-2.6'>hvm</type>
1366 +    <loader readonly='yes' type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
1367 +  </os>
1368 +  <features>
1369 +    <gic version='3'/>
1370 +  </features>
1371 +  <cpu mode='host-model'>
1372 +    <model fallback='allow'/>
1373 +  </cpu>
1374 +  <clock offset='utc'/>
1375 +  <on_poweroff>destroy</on_poweroff>
1376 +  <on_reboot>restart</on_reboot>
1377 +  <on_crash>restart</on_crash>
1378 +  <devices>
1379 +    <emulator>/usr/bin/kvm</emulator>
1380 +    <disk type='file' device='disk'>
1381 +      <driver name='qemu' type='raw' cache='none' io='native'/>
1382 +      <source file='disk.raw'/>
1383 +      <target dev='vda' bus='virtio'/>
1384 +      <boot order='2'/>
1385 +      <address type='virtio-mmio'/>
1386 +    </disk>
1387 +    <controller type='scsi' index='0' model='virtio-scsi'>
1388 +      <address type='virtio-mmio'/>
1389 +    </controller>
1390 +    <controller type='pci' index='0' model='pcie-root'/>
1391 +    <interface type='bridge'>
1392 +      <source bridge='admin8_br'/>
1393 +      <model type='virtio'/>
1394 +      <boot order='1'/>
1395 +      <address type='virtio-mmio'/>
1396 +    </interface>
1397 +    <interface type='bridge'>
1398 +      <source bridge='public8_br'/>
1399 +      <model type='virtio'/>
1400 +      <address type='virtio-mmio'/>
1401 +    </interface>
1402 +    <interface type='bridge'>
1403 +      <source bridge='trunk8_br'/>
1404 +      <model type='virtio'/>
1405 +      <address type='virtio-mmio'/>
1406 +    </interface>
1407 +    <serial type='pty'>
1408 +      <target port='0'/>
1409 +    </serial>
1410 +    <console type='pty'>
1411 +      <target type='serial' port='0'/>
1412 +    </console>
1413 +  </devices>
1414 +</domain>
1415 +
1416 diff --git a/deploy/templates/arm/virtual_environment/vms/fuel.xml b/deploy/templates/arm/virtual_environment/vms/fuel.xml
1417 new file mode 100644
1418 index 0000000..ad7c67f
1419 --- /dev/null
1420 +++ b/deploy/templates/arm/virtual_environment/vms/fuel.xml
1421 @@ -0,0 +1,99 @@
1422 +<domain type='kvm'>
1423 +  <name>fuel</name>
1424 +  <memory unit='KiB'>8290304</memory>
1425 +  <currentMemory unit='KiB'>8290304</currentMemory>
1426 +  <vcpu placement='static'>4</vcpu>
1427 +  <resource>
1428 +    <partition>/machine</partition>
1429 +  </resource>
1430 +  <os>
1431 +    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
1432 +    <boot dev='hd'/>
1433 +    <boot dev='cdrom'/>
1434 +    <bootmenu enable='no'/>
1435 +  </os>
1436 +  <features>
1437 +    <acpi/>
1438 +    <apic/>
1439 +    <pae/>
1440 +  </features>
1441 +  <cpu mode='host-model'>
1442 +    <model fallback='allow'/>
1443 +  </cpu>
1444 +  <clock offset='utc'>
1445 +    <timer name='rtc' tickpolicy='catchup'/>
1446 +    <timer name='pit' tickpolicy='delay'/>
1447 +    <timer name='hpet' present='no'/>
1448 +  </clock>
1449 +  <on_poweroff>destroy</on_poweroff>
1450 +  <on_reboot>restart</on_reboot>
1451 +  <on_crash>restart</on_crash>
1452 +  <pm>
1453 +    <suspend-to-mem enabled='no'/>
1454 +    <suspend-to-disk enabled='no'/>
1455 +  </pm>
1456 +  <devices>
1457 +    <emulator>/usr/libexec/qemu-kvm</emulator>
1458 +    <disk type='block' device='cdrom'>
1459 +      <driver name='qemu' type='raw'/>
1460 +      <target dev='hdc' bus='ide'/>
1461 +      <readonly/>
1462 +    </disk>
1463 +    <disk type='file' device='disk'>
1464 +      <driver name='qemu' type='raw' cache='none' io='native'/>
1465 +      <source file='disk.raw'/>
1466 +      <target dev='vda' bus='virtio'/>
1467 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
1468 +    </disk>
1469 +    <controller type='usb' index='0' model='ich9-ehci1'>
1470 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7'/>
1471 +    </controller>
1472 +    <controller type='usb' index='0' model='ich9-uhci1'>
1473 +      <master startport='0'/>
1474 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
1475 +    </controller>
1476 +    <controller type='usb' index='0' model='ich9-uhci2'>
1477 +      <master startport='2'/>
1478 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/>
1479 +    </controller>
1480 +    <controller type='usb' index='0' model='ich9-uhci3'>
1481 +      <master startport='4'/>
1482 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x2'/>
1483 +    </controller>
1484 +    <controller type='pci' index='0' model='pci-root'/>
1485 +    <controller type='ide' index='0'>
1486 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
1487 +    </controller>
1488 +    <controller type='virtio-serial' index='0'>
1489 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
1490 +    </controller>
1491 +    <interface type='bridge'>
1492 +      <source bridge='admin8_br0'/>
1493 +      <model type='virtio'/>
1494 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
1495 +    </interface>
1496 +    <interface type='bridge'>
1497 +      <source bridge='public8_br0'/>
1498 +      <model type='virtio'/>
1499 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
1500 +    </interface>
1501 +    <serial type='pty'>
1502 +      <target port='0'/>
1503 +    </serial>
1504 +    <console type='pty'>
1505 +      <target type='serial' port='0'/>
1506 +    </console>
1507 +    <input type='mouse' bus='ps2'/>
1508 +    <input type='keyboard' bus='ps2'/>
1509 +    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
1510 +      <listen type='address' address='127.0.0.1'/>
1511 +    </graphics>
1512 +    <video>
1513 +      <model type='vga' vram='16384' heads='1'/>
1514 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
1515 +    </video>
1516 +    <memballoon model='virtio'>
1517 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
1518 +    </memballoon>
1519 +  </devices>
1520 +</domain>