Beispiel #1
0
def main():
    parser = argparse.ArgumentParser(
        prog='pypmb',
        description='Python Intelligent Platform Management Bridge',
        conflict_handler='resolve')
    parser.add_argument('--port',
                        dest='port',
                        type=int,
                        default=623,
                        help='Port to listen on; defaults to 623')
    args = parser.parse_args()

    # logging
    level = logging.INFO  # logging.DEBUG #
    logging.basicConfig(
        level=level,
        format='%(relativeCreated)6d %(threadName)s %(levelname)s:%(message)s')

    mypmb = PyPmb({"admin": "changeme"},
                  name="pmb",
                  port=args.port,
                  loop=asyncio.get_event_loop())

    loop = None  #mypmb.loop

    # add target BMCs
    mypmb.add_target(1, fakebmc.FakeBmc(mypmb.authdata, port=None))
    #mypmb.add_target(2, Esp8266Bmc(mypmb.authdata, {}, {}, {'host':'192.168.1.11'}, {'host':'192.168.1.11'}, {'baud_rate':'38400'}, name="cloud1", port=None, loop=loop))
    #mypmb.add_target(3, Esp8266WakeOnLanBmc(mypmb.authdata, {}, {}, {'host':'192.168.11.12'}, {'host':'192.168.1.12'}, {'baud_rate':'38400'}, {'mac':'AA:BB:CC:DD:EE:FF', 'ip':'192.168.1.255'}, name="cloud1", port=None, loop=loop))

    # setup
    asyncbmc.wait_for_sync(mypmb.setup(), loop=mypmb.loop)

    mypmb.listen()
Beispiel #2
0
 def power_cycle(self):
     logging.info('power cycle, using power cycle off press duration: '
                  '{}, wait duration: {}, on press duration {}'.format(
                      self.power_cycle_off_press_duration,
                      self.power_cycle_wait_duration,
                      self.power_cycle_on_press_duration))
     return asyncbmc.wait_for_sync(self.async_power_cycle(), loop=self.loop)
Beispiel #3
0
 def power_shutdown(self):
     logging.info('politely shut down the system, '
                  'using power shutdown press duration: '
                  '{} and polite wait duration: {}'.format(
                      self.power_shutdown_press_duration,
                      self.power_shutdown_wait_duration))
     return asyncbmc.wait_for_sync(self.async_power_shutdown(),
                                   loop=self.loop)
Beispiel #4
0
 async def setup(self):
     # setup bmcs
     for mybmc in self.targetbmcs.values():
         if isinstance(mybmc, asyncbmc.AsyncBmc):
             asyncbmc.wait_for_sync(mybmc.setup(), loop=mybmc.loop)
Beispiel #5
0
 def power_reset(self):
     logging.info(
         'power reset, using power reset press duration: {}'.format(
             self.power_reset_press_duration))
     return asyncbmc.wait_for_sync(self.async_power_reset(), loop=self.loop)
Beispiel #6
0
 def power_off(self):
     logging.info('abruptly remove power, '
                  'using power off press duration: {}'.format(
                      self.power_off_press_duration))
     # this should power down without waiting for clean shutdown
     return asyncbmc.wait_for_sync(self.async_power_off(), loop=self.loop)