def main(): module = KatelloAnsibleModule( foreman_spec=dict( product=dict(type='entity', scope=['organization'], required=True), repository=dict(type='entity', scope=['product'], failsafe=True), # This should be scoped more explicit for better serch performance, but needs rerecording # repository=dict(type='entity', scope=['organization', 'product'], failsafe=True), ), ) module.task_timeout = 12 * 60 * 60 with module.api_connection(): product = module.lookup_entity('product') repository = module.lookup_entity('repository') if repository: task = module.resource_action('repositories', 'sync', {'id': repository['id']}) else: task = module.resource_action('products', 'sync', {'id': product['id']}) module.exit_json(task=task)
def main(): module = KatelloAnsibleModule( foreman_spec=dict( scc_product=dict(required=True, type='entity', aliases=['friendly_name'], scope=['scc_account'], thin=False), scc_account=dict(required=True, type='entity', scope=['organization']), ), required_plugins=[('scc_manager', ['*'])], ) module.task_timeout = 4 * 60 with module.api_connection(): scc_product = module.lookup_entity('scc_product') if not scc_product.get('product_id'): payload = {'id': scc_product['id']} payload.update(module.scope_for('scc_account')) module.resource_action('scc_products', 'subscribe', payload)