~brendan-donegan/maas/power_commands_pxe

« back to all changes in this revision

Viewing changes to common.py

  • Committer: Brendan Donegan
  • Date: 2017-03-21 17:12:42 UTC
  • Revision ID: brendan.donegan@canonical.com-20170321171242-zzmj7ro30e8x6v1b
configure the chassis to pxe boot

Show diffs side-by-side

added added

removed removed

Lines of Context:
260
260
    def _boot_nodes(self):
261
261
        # Run ipmipower to boot up nodes.
262
262
        for ipmi_address in LENOVO_LAB.values():
263
 
            self.power_off(ipmi_address, user=POWER_USER, password=POWER_PASS)
264
 
            self.power_on(ipmi_address, user=POWER_USER, password=POWER_PASS)
 
263
            self.cycle_power(ipmi_address, user=POWER_USER, password=POWER_PASS)
265
264
        for ipmi_address in GEN9_SYSTEMS.values():
266
 
            self.power_off(ipmi_address, driver='LAN_2_0',
267
 
                           user=GEN9_USER, password=GEN9_PASS)
268
 
            self.power_on(ipmi_address, driver='LAN_2_0',
269
 
                          user=GEN9_USER, password=GEN9_PASS)
 
265
            self.cycle_power(
 
266
                ipmi_address, driver='LAN_2_0',
 
267
                user=GEN9_USER, password=GEN9_PASS
 
268
            )
270
269
        if USE_ARM64_NODES:
271
270
            for ipmi_address in GIGABYTE_SYSTEMS.values():
272
 
                self.power_off(
273
 
                    ipmi_address, user=GIGABYTE_USER, password=GIGABYTE_PASS
274
 
                )
275
 
                self.power_on(
 
271
                self.cycle_power(
276
272
                    ipmi_address, user=GIGABYTE_USER, password=GIGABYTE_PASS
277
273
                )
278
274
        if USE_PPC_NODES:
279
275
            for ipmi_address in PPC_SYSTEMS.values():
280
 
                self.power_off(
281
 
                    ipmi_address, password='admin', driver='LAN_2_0'
282
 
                )
283
 
                self.power_on(
 
276
                self.cycle_power(
284
277
                    ipmi_address, password='admin', driver='LAN_2_0'
285
278
                )
286
279
        if USE_ARM_NODES:
287
280
            for ipmi_address in ARM_LAB.values():
288
 
                self.power_off(ipmi_address, user='admin', password='admin')
289
 
                self.power_on(ipmi_address, user='admin', password='admin')
 
281
                self.cycle_power(ipmi_address, user='admin', password='admin')
 
282
 
 
283
    def cycle_power(self, ip, user=None, password=None, driver=None):
 
284
        self.power_off(ip, user=user, password=password, driver=driver)
 
285
        cmd = ["ipmi-chassis-config", "-h", ip]
 
286
        if driver is not None:
 
287
            cmd += ["-D", driver]
 
288
        if user is not None:
 
289
            cmd += ["-u", user]
 
290
        if password is not None:
 
291
            cmd += ["-p", password]
 
292
        config_cmd = cmd + ["--config", "--file=ipmi.conf"]
 
293
        run_command(config_cmd)
 
294
        self.power_on(ip, user=user, password=password, driver=driver)
 
295
 
290
296
 
291
297
    def _issue_power_command(self, state, ip,
292
298
                             user=None, password=None, driver=None):