diff options
Diffstat (limited to 'deploy')
-rw-r--r-- | deploy/common.py | 3 | ||||
-rw-r--r-- | deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dea-pod-override.yaml | 264 | ||||
-rw-r--r-- | deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dha.yaml | 101 | ||||
-rw-r--r-- | deploy/dha_adapters/zte_adapter.py | 28 |
4 files changed, 372 insertions, 24 deletions
diff --git a/deploy/common.py b/deploy/common.py index 353045867..80832e201 100644 --- a/deploy/common.py +++ b/deploy/common.py @@ -18,6 +18,7 @@ import shutil import stat import errno import time +import shlex N = {'id': 0, 'status': 1, 'name': 2, 'cluster': 3, 'ip': 4, 'mac': 5, 'roles': 6, 'pending_roles': 7, 'online': 8, 'group_id': 9} @@ -41,7 +42,7 @@ os.chmod(LOGFILE, 0664) def mask_arguments(cmd, mask_args, mask_str): - cmd_line = cmd.split() + cmd_line = shlex.split(cmd) for pos in mask_args: # Don't mask the actual command; also check if we don't reference # beyond bounds diff --git a/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dea-pod-override.yaml new file mode 100644 index 000000000..eed982d01 --- /dev/null +++ b/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dea-pod-override.yaml @@ -0,0 +1,264 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# stefan.k.berg@ericsson.com +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +dea-pod-override-config-metadata: + title: 'Deployment Environment Adapter POD override for Development Pipeline - Intel Santa Clara, CA, USA version' + version: '0.1' + created: 'Wed Sept 7 2016' + comment: 'For Fuel 9' +environment: + name: opnfv_virt +interfaces_1: + ens3: + - fuelweb_admin + - storage + ens4: + - management + ens5: + - private + ens6: + - public +transformations_1: + transformations: + - action: add-br + name: br-fw-admin + - action: add-br + name: br-mgmt + - action: add-br + name: br-storage + - action: add-br + name: br-ex + - action: add-br + name: br-floating + provider: ovs + - action: add-patch + bridges: + - br-floating + - br-ex + mtu: 65000 + provider: ovs + - action: add-br + name: br-mesh + - action: add-port + bridge: br-fw-admin + name: ens3 + - action: add-port + bridge: br-mgmt + name: ens4 + - action: add-port + bridge: br-storage + name: ens3.102 + - action: add-port + bridge: br-mesh + name: ens5.103 + - action: add-port + bridge: br-ex + name: ens6 +fuel: + ADMIN_NETWORK: + dhcp_pool_end: 10.20.0.254 + dhcp_pool_start: 10.20.0.3 + ipaddress: 10.20.0.2 + netmask: 255.255.255.0 + ssh_network: 10.20.0.0/24 + DNS_DOMAIN: domain.tld + DNS_SEARCH: domain.tld + DNS_UPSTREAM: 10.248.2.1 + HOSTNAME: fuel + NTP1: 10.20.0.1 + NTP2: null + NTP3: null +network: + networking_parameters: + base_mac: fa:16:3e:00:00:00 + configuration_template: null + dns_nameservers: + - 10.248.2.1 + floating_name: admin_floating_net + floating_ranges: + - - 172.16.0.130 + - 172.16.0.254 + gre_id_range: + - 2 + - 65535 + internal_cidr: 192.168.111.0/24 + internal_gateway: 192.168.111.1 + internal_name: admin_internal_net + net_l23_provider: ovs + segmentation_type: tun + vlan_range: + - 1000 + - 1030 + networks: + - cidr: 192.168.1.0/24 + gateway: null + ip_ranges: + - - 192.168.1.1 + - 192.168.1.254 + meta: + cidr: 192.168.1.0/24 + configurable: true + map_priority: 2 + name: storage + notation: cidr + render_addr_mask: storage + render_type: cidr + use_gateway: false + vlan_start: 102 + name: storage + vlan_start: 102 + - cidr: 192.168.0.0/24 + gateway: null + ip_ranges: + - - 192.168.0.1 + - 192.168.0.253 + meta: + cidr: 192.168.0.0/24 + configurable: true + map_priority: 2 + name: management + notation: ip_ranges + render_addr_mask: internal + render_type: cidr + use_gateway: false + vips: + - haproxy + - vrouter + vlan_start: null + name: management + vlan_start: null + - cidr: 192.168.2.0/24 + gateway: null + ip_ranges: + - - 192.168.2.1 + - 192.168.2.254 + meta: + cidr: 192.168.2.0/24 + configurable: true + map_priority: 2 + name: private + notation: cidr + render_addr_mask: null + render_type: cidr + seg_type: tun + use_gateway: false + vlan_start: 103 + name: private + vlan_start: 103 + - cidr: 172.16.0.0/24 + gateway: 172.16.0.1 + ip_ranges: + - - 172.16.0.2 + - 172.16.0.126 + meta: + cidr: 172.16.0.0/24 + configurable: true + floating_range_var: floating_ranges + ip_range: + - 172.16.0.2 + - 172.16.0.126 + map_priority: 1 + name: public + notation: ip_ranges + render_addr_mask: public + render_type: null + use_gateway: true + vips: + - haproxy + - vrouter + vlan_start: null + name: public + vlan_start: null + - cidr: 10.20.0.0/24 + gateway: 10.20.0.2 + ip_ranges: + - - 10.20.0.3 + - 10.20.0.254 + meta: + configurable: false + map_priority: 0 + notation: ip_ranges + render_addr_mask: null + render_type: null + unmovable: true + use_gateway: true + name: fuelweb_admin + vlan_start: null +settings: + editable: + external_dns: + dns_list: + description: List of upstream DNS servers + label: DNS list + max: 3 + regex: + error: Invalid IP address + source: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ + type: text_list + value: + - 147.214.6.234 + weight: 10 + metadata: + group: network + label: Host OS DNS Servers + weight: 30 + external_ntp: + metadata: + group: network + label: Host OS NTP Servers + weight: 40 + ntp_list: + description: List of upstream NTP servers + label: NTP server list + regex: + error: Invalid NTP server + source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ + type: text_list + value: + - 10.20.0.1 + weight: 10 + syslog: + metadata: + enabled: false + group: logging + label: Syslog + toggleable: true + weight: 50 + syslog_port: + description: Remote syslog port + label: Port + regex: + error: Invalid syslog port + source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ + type: text + value: '514' + weight: 20 + syslog_server: + description: Remote syslog hostname + label: Hostname + regex: + error: Invalid hostname + source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ + type: text + value: '' + weight: 10 + syslog_transport: + label: Syslog transport protocol + type: radio + value: tcp + values: + - data: udp + description: '' + label: UDP + - data: tcp + description: '' + label: TCP + weight: 30 + diff --git a/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dha.yaml new file mode 100644 index 000000000..3657285e8 --- /dev/null +++ b/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dha.yaml @@ -0,0 +1,101 @@ +dha-pod-config-metadata: + title: Deployment Hardware Adapter (DHA) for fuel development pipeline - Intel Santa Clara, CA. USA version + version: 0.0.1 + created: Sept 7 2016 + comment: Intel Santa Clara, CA, USA Fuel 9 version + +# Adapter to use for this definition +adapter: libvirt + +# Node list. +# Mandatory property is id, all other properties are adapter specific. + +nodes: +- id: 1 + libvirtName: controller1 + libvirtTemplate: templates/virtual_environment/vms/controller.xml +- id: 2 + libvirtName: compute1 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 3 + libvirtName: compute2 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 4 + libvirtName: compute3 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 5 + libvirtName: fuel-master + libvirtTemplate: templates/virtual_environment/vms/fuel.xml + isFuel: yes + username: root + password: r00tme + +virtNetConfDir: templates/virtual_environment/networks + +disks: + fuel: 100G + controller: 100G + compute: 100G + +# Here the infrastructure VMs can be defined. +# The entries are not mandatory! If it is left empty +# the default defined in deploy/templates will +# be used. +define_vms: + fuel: + vcpu: + value: 2 + memory: + attribute_equlas: + unit: KiB + value: 8388608 + currentMemory: + attribute_equlas: + unit: KiB + value: 8388608 + devices: + interface: + # With attribute_equlas someone can define which + # interface type is meant + attribute_equlas: + type: network + # This will overwrite the type of the model of + # the interface + model: + attribute: + type: virtio + controller: + vcpu: + value: 4 + memory: + attribute_equlas: + unit: KiB + value: 10485760 + currentMemory: + attribute_equlas: + unit: KiB + value: 10485760 + devices: + interface: + attribute_equlas: + type: network + model: + attribute: + type: e1000 + compute: + memory: + attribute_equlas: + unit: KiB + value: 6291456 + currentMemory: + attribute_equlas: + unit: KiB + value: 6291456 + devices: + interface: + attribute_equlas: + type: network + model: + attribute: + type: e1000 + diff --git a/deploy/dha_adapters/zte_adapter.py b/deploy/dha_adapters/zte_adapter.py index a40a02685..da651ca15 100644 --- a/deploy/dha_adapters/zte_adapter.py +++ b/deploy/dha_adapters/zte_adapter.py @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2015 Ericsson AB and others. +# Copyright (c) 2016 Ericsson AB, ZTE and others. # szilard.cserey@ericsson.com # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -24,27 +24,9 @@ class ZteAdapter(IpmiAdapter): super(ZteAdapter, self).__init__(yaml_path, attempts) def node_reset(self, node_id): - WAIT_LOOP = 600 log('RESET Node %s' % node_id) - cmd_prefix = self.ipmi_cmd(node_id) - state = exec_cmd('%s chassis power status' % cmd_prefix, mask_args=[8,10]) - if state == 'Chassis Power is on': - was_shut_off = False - done = False - exec_cmd('%s chassis power cycle' % cmd_prefix, mask_args=[8,10]) - for i in range(WAIT_LOOP): - state, _ = exec_cmd('%s chassis power status' % cmd_prefix, - check=False, - mask_args=[8,10]) - if state == 'Chassis Power is off': - was_shut_off = True - elif state == 'Chassis Power is on' and was_shut_off: - done = True - break - time.sleep(1) - if not done: - err('Could Not RESET Node %s' % node_id) - else: - err('Cannot RESET Node %s because it\'s not Active, state: %s' - % (node_id, state)) + cmd = '%s chassis power cycle' % self.ipmi_cmd(node_id) + exec_cmd(cmd, attempts=self.attempts, delay=self.delay, + verbose=True, + mask_args=[8,10]) |