aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/dha_adapters/hp_adapter.py
blob: 6434da868293ea5e49961773455c7184179b7800 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
###############################################################################
# Copyright (c) 2015 Ericsson AB 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
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
###############################################################################


from ipmi_adapter import IpmiAdapter
from ssh_client import SSHClient

from common import (
    log,
)

DEV = {'pxe': 'bootsource5',
       'disk': 'bootsource3',
       'iso': 'bootsource1'}

ROOT = '/system1/bootconfig1'


class HpAdapter(IpmiAdapter):

    def __init__(self, yaml_path):
        super(HpAdapter, self).__init__(yaml_path)

    def node_set_boot_order(self, node_id, boot_order_list):
        log('Set boot order %s on Node %s' % (boot_order_list, node_id))
        ip, username, password, ipmiport = self.get_access_info(node_id)
        ssh = SSHClient(ip, username, password)
        with ssh as s:
            for order, dev in enumerate(boot_order_list):
                s.exec_cmd('set %s/%s bootorder=%s'
                           % (ROOT, DEV[dev], order + 1))