def test_pseudo_op(self): inventory = make_inventory() state = State(inventory, Config()) connect_all(state) pseudo_state.set(state) pseudo_host.set(inventory['somehost']) # Exceute the op "bare" server.shell('echo "hi"') # Ensure this is ignored state.active = False server.shell('echo "hi 2"') # We should now have one op self.assertEqual(len(state.op_order), 1) # Ensure only somehost has actual op self.assertEqual(len(state.ops['somehost']), 1) self.assertEqual(len(state.ops['anotherhost']), 0) # Check we can't call it inside another op state.active = True state.in_op = True with self.assertRaises(PyinfraError): server.shell('echo "hi 3"') pseudo_state.reset() pseudo_host.reset()
if arguments['deploy'] is None and arguments['op'] is None: print_fact_output = print_output else: print_fact_output = arguments['verbose'] > 1 state.print_output = print_output # -v state.print_fact_info = print_output # -v state.print_fact_output = print_fact_output # -vv state.print_lines = True # Attach to pseudo inventory & state pseudo_inventory.set(inventory) pseudo_state.set(state) # Load any hooks/config from the deploy file state.active = False pseudo_host.set(FakeHost()) load_deploy_config(arguments['deploy'], config) pseudo_host.reset() state.active = True # Setup the data to be passed to config hooks hook_data = FallbackAttrData( state.inventory.get_override_data(), state.inventory.get_group_data(inventory_group), state.inventory.get_data()) # Run the before_connect hook if provided run_hook(state, 'before_connect', hook_data) # Connect to all the servers