Exemplo n.º 1
0
    def test_run_middleware_correctly_chained(self):
        log = []
        def command(lib, argv, modificators):
            log.append('command: {0}, {1}, {2}'.format(lib, argv, modificators))

        def m1(next, lib, argv, modificators):
            log.append(
                'm1 start: {0}, {1}, {2}'.format(lib, argv, modificators)
            )
            next(lib, argv, modificators)
            log.append('m1 done')

        def m2(next, lib, argv, modificators):
            log.append(
                'm2 start: {0}, {1}, {2}'.format(lib, argv, modificators)
            )
            next(lib, argv, modificators)
            log.append('m2 done')

        run_with_middleware = middleware.build(m1, m2)
        run_with_middleware(command, "1", "2", "3")
        self.assertEqual(log, [
            'm1 start: 1, 2, 3',
            'm2 start: 1, 2, 3',
            'command: 1, 2, 3',
            'm2 done',
            'm1 done',
        ])
Exemplo n.º 2
0
    def test_run_middleware_correctly_chained(self):
        log = []

        def command(lib, argv, modificators):
            log.append('command: {0}, {1}, {2}'.format(lib, argv,
                                                       modificators))

        def m1(next, lib, argv, modificators):
            log.append('m1 start: {0}, {1}, {2}'.format(
                lib, argv, modificators))
            next(lib, argv, modificators)
            log.append('m1 done')

        def m2(next, lib, argv, modificators):
            log.append('m2 start: {0}, {1}, {2}'.format(
                lib, argv, modificators))
            next(lib, argv, modificators)
            log.append('m2 done')

        run_with_middleware = middleware.build(m1, m2)
        run_with_middleware(command, "1", "2", "3")
        self.assertEqual(log, [
            'm1 start: 1, 2, 3',
            'm2 start: 1, 2, 3',
            'command: 1, 2, 3',
            'm2 done',
            'm1 done',
        ])
Exemplo n.º 3
0
    def test_run_middleware_correctly_chained(self):
        log = []

        def command(lib, argv, modifiers):
            log.append("command: {0}, {1}, {2}".format(lib, argv, modifiers))

        def mdw1(_next, lib, argv, modifiers):
            log.append("mdw1 start: {0}, {1}, {2}".format(
                lib, argv, modifiers))
            _next(lib, argv, modifiers)
            log.append("mdw1 done")

        def mdw2(_next, lib, argv, modifiers):
            log.append("mdw2 start: {0}, {1}, {2}".format(
                lib, argv, modifiers))
            _next(lib, argv, modifiers)
            log.append("mdw2 done")

        run_with_middleware = middleware.build(mdw1, mdw2)
        run_with_middleware(command, "1", "2", "3")
        self.assertEqual(
            log,
            [
                "mdw1 start: 1, 2, 3",
                "mdw2 start: 1, 2, 3",
                "command: 1, 2, 3",
                "mdw2 done",
                "mdw1 done",
            ],
        )
Exemplo n.º 4
0
def load_module(env, middleware_factory, name):
    # pylint: disable=too-many-return-statements, too-many-branches
    if name == "acl":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_role": acl.create_role,
                "remove_role": acl.remove_role,
                "assign_role_not_specific": acl.assign_role_not_specific,
                "assign_role_to_target": acl.assign_role_to_target,
                "assign_role_to_group": acl.assign_role_to_group,
                "unassign_role_not_specific": acl.unassign_role_not_specific,
                "unassign_role_from_target": acl.unassign_role_from_target,
                "unassign_role_from_group": acl.unassign_role_from_group,
                "create_target": acl.create_target,
                "create_group": acl.create_group,
                "remove_target": acl.remove_target,
                "remove_group": acl.remove_group,
                "add_permission": acl.add_permission,
                "remove_permission": acl.remove_permission,
                "get_config": acl.get_config,
            },
        )

    if name == "alert":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_alert": alert.create_alert,
                "update_alert": alert.update_alert,
                "remove_alert": alert.remove_alert,
                "add_recipient": alert.add_recipient,
                "update_recipient": alert.update_recipient,
                "remove_recipient": alert.remove_recipient,
                "get_all_alerts": alert.get_all_alerts,
            },
        )

    if name == "booth":
        return bind_all(
            env,
            middleware.build(middleware_factory.booth_conf,
                             middleware_factory.cib),
            {
                "config_setup": booth.config_setup,
                "config_destroy": booth.config_destroy,
                "config_text": booth.config_text,
                "config_ticket_add": booth.config_ticket_add,
                "config_ticket_remove": booth.config_ticket_remove,
                "create_in_cluster": booth.create_in_cluster,
                "remove_from_cluster": booth.remove_from_cluster,
                "restart": booth.restart,
                "config_sync": booth.config_sync,
                "enable_booth": booth.enable_booth,
                "disable_booth": booth.disable_booth,
                "start_booth": booth.start_booth,
                "stop_booth": booth.stop_booth,
                "pull_config": booth.pull_config,
                "get_status": booth.get_status,
                "ticket_grant": booth.ticket_grant,
                "ticket_revoke": booth.ticket_revoke,
            },
        )

    if name == "cluster":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "add_link": cluster.add_link,
                "add_nodes": cluster.add_nodes,
                "corosync_authkey_change": cluster.corosync_authkey_change,
                "config_update": cluster.config_update,
                "config_update_local": cluster.config_update_local,
                "get_corosync_conf_struct": cluster.get_corosync_conf_struct,
                "node_clear": cluster.node_clear,
                "remove_links": cluster.remove_links,
                "remove_nodes": cluster.remove_nodes,
                "remove_nodes_from_cib": cluster.remove_nodes_from_cib,
                "setup": cluster.setup,
                "setup_local": cluster.setup_local,
                "update_link": cluster.update_link,
                "verify": cluster.verify,
                "generate_cluster_uuid": cluster.generate_cluster_uuid,
                "generate_cluster_uuid_local":
                cluster.generate_cluster_uuid_local,
            },
        )

    if name == "dr":
        return bind_all(
            env,
            middleware.build(middleware_factory.corosync_conf_existing),
            {
                "get_config": dr.get_config,
                "destroy": dr.destroy,
                "set_recovery_site": dr.set_recovery_site,
                "status_all_sites_plaintext": dr.status_all_sites_plaintext,
            },
        )

    if name == "remote_node":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
                middleware_factory.corosync_conf_existing,
            ),
            {
                "node_add_remote": remote_node.node_add_remote,
                "node_add_guest": remote_node.node_add_guest,
                "node_remove_remote": remote_node.node_remove_remote,
                "node_remove_guest": remote_node.node_remove_guest,
            },
        )

    if name == "constraint_colocation":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_with_set": constraint_colocation.create_with_set,
                "config": constraint_colocation.config,
            },
        )

    if name == "constraint_order":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_with_set": constraint_order.create_with_set,
                "config": constraint_order.config,
            },
        )

    if name == "constraint_ticket":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_with_set": constraint_ticket.create_with_set,
                "config": constraint_ticket.config,
                "create": constraint_ticket.create,
                "remove": constraint_ticket.remove,
            },
        )

    if name == "fencing_topology":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "add_level":
                fencing_topology.add_level,
                "get_config":
                fencing_topology.get_config,
                "remove_all_levels":
                fencing_topology.remove_all_levels,
                "remove_levels_by_params":
                (fencing_topology.remove_levels_by_params),
                "verify":
                fencing_topology.verify,
            },
        )

    if name == "node":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "maintenance_unmaintenance_all":
                (node.maintenance_unmaintenance_all),
                "maintenance_unmaintenance_list":
                (node.maintenance_unmaintenance_list),
                "maintenance_unmaintenance_local":
                (node.maintenance_unmaintenance_local),
                "standby_unstandby_all":
                node.standby_unstandby_all,
                "standby_unstandby_list":
                node.standby_unstandby_list,
                "standby_unstandby_local":
                node.standby_unstandby_local,
            },
        )

    if name == "pcsd":
        return bind_all(
            env,
            middleware.build(),
            {"synchronize_ssl_certificate": pcsd.synchronize_ssl_certificate},
        )

    if name == "qdevice":
        return bind_all(
            env,
            middleware.build(),
            {
                "qdevice_status_text":
                qdevice.qdevice_status_text,
                "qdevice_setup":
                qdevice.qdevice_setup,
                "qdevice_destroy":
                qdevice.qdevice_destroy,
                "qdevice_start":
                qdevice.qdevice_start,
                "qdevice_stop":
                qdevice.qdevice_stop,
                "qdevice_kill":
                qdevice.qdevice_kill,
                "qdevice_enable":
                qdevice.qdevice_enable,
                "qdevice_disable":
                qdevice.qdevice_disable,
                # following commands are internal use only, called from pcsd
                "client_net_setup":
                qdevice.client_net_setup,
                "client_net_import_certificate":
                (qdevice.client_net_import_certificate),
                "client_net_destroy":
                qdevice.client_net_destroy,
                "qdevice_net_sign_certificate_request":
                (qdevice.qdevice_net_sign_certificate_request),
            },
        )

    if name == "quorum":
        return bind_all(
            env,
            middleware.build(middleware_factory.corosync_conf_existing),
            {
                "add_device": quorum.add_device,
                "get_config": quorum.get_config,
                "remove_device": quorum.remove_device,
                "remove_device_heuristics": quorum.remove_device_heuristics,
                "set_expected_votes_live": quorum.set_expected_votes_live,
                "set_options": quorum.set_options,
                "status_text": quorum.status_text,
                "status_device_text": quorum.status_device_text,
                "update_device": quorum.update_device,
            },
        )

    if name == "resource_agent":
        return bind_all(
            env,
            middleware.build(),
            {
                "describe_agent":
                resource_agent.describe_agent,
                "get_agent_default_operations":
                resource_agent.get_agent_default_operations,
                "get_agent_metadata":
                resource_agent.get_agent_metadata,
                "get_agents_list":
                resource_agent.get_agents_list,
                "get_structured_agent_name":
                resource_agent.get_structured_agent_name,
                "list_agents_for_standard_and_provider":
                (resource_agent.list_agents_for_standard_and_provider),
                "list_agents":
                resource_agent.list_agents,
                "list_ocf_providers":
                resource_agent.list_ocf_providers,
                "list_standards":
                resource_agent.list_standards,
            },
        )

    if name == "resource":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
                middleware_factory.corosync_conf_existing,
            ),
            {
                "ban":
                resource.ban,
                "bundle_create":
                resource.bundle_create,
                "bundle_reset":
                resource.bundle_reset,
                "bundle_update":
                resource.bundle_update,
                "create":
                resource.create,
                "create_as_clone":
                resource.create_as_clone,
                "create_in_group":
                resource.create_in_group,
                "create_into_bundle":
                resource.create_into_bundle,
                "disable":
                resource.disable,
                "disable_safe":
                resource.disable_safe,
                "disable_simulate":
                resource.disable_simulate,
                "enable":
                resource.enable,
                "get_configured_resources":
                resource.get_configured_resources,
                "get_failcounts":
                resource.get_failcounts,
                "group_add":
                resource.group_add,
                "is_any_resource_except_stonith":
                resource.is_any_resource_except_stonith,
                "is_any_stonith":
                resource.is_any_stonith,
                "manage":
                resource.manage,
                "move":
                resource.move,
                "move_autoclean":
                resource.move_autoclean,
                "get_resource_relations_tree":
                (resource.get_resource_relations_tree),
                "unmanage":
                resource.unmanage,
                "unmove_unban":
                resource.unmove_unban,
            },
        )

    if name == "cib_options":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib, ),
            {
                "operation_defaults_config":
                cib_options.operation_defaults_config,
                "operation_defaults_create":
                cib_options.operation_defaults_create,
                "operation_defaults_remove":
                cib_options.operation_defaults_remove,
                "operation_defaults_update":
                cib_options.operation_defaults_update,
                "resource_defaults_config":
                cib_options.resource_defaults_config,
                "resource_defaults_create":
                cib_options.resource_defaults_create,
                "resource_defaults_remove":
                cib_options.resource_defaults_remove,
                "resource_defaults_update":
                cib_options.resource_defaults_update,
            },
        )

    if name == "status":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
                middleware_factory.corosync_conf_existing,
            ),
            {
                "pacemaker_status_xml":
                status.pacemaker_status_xml,
                "full_cluster_status_plaintext":
                (status.full_cluster_status_plaintext),
            },
        )

    if name == "stonith":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
                middleware_factory.corosync_conf_existing,
            ),
            {
                "create":
                stonith.create,
                "create_in_group":
                stonith.create_in_group,
                "history_get_text":
                stonith.history_get_text,
                "history_cleanup":
                stonith.history_cleanup,
                "history_update":
                stonith.history_update,
                "update_scsi_devices":
                stonith.update_scsi_devices,
                "update_scsi_devices_add_remove":
                stonith.update_scsi_devices_add_remove,
            },
        )

    if name == "sbd":
        return bind_all(
            env,
            middleware.build(),
            {
                "enable_sbd":
                sbd.enable_sbd,
                "disable_sbd":
                sbd.disable_sbd,
                "get_cluster_sbd_status":
                sbd.get_cluster_sbd_status,
                "get_cluster_sbd_config":
                sbd.get_cluster_sbd_config,
                "get_local_sbd_config":
                sbd.get_local_sbd_config,
                "initialize_block_devices":
                sbd.initialize_block_devices,
                "get_local_devices_info":
                sbd.get_local_devices_info,
                "set_message":
                sbd.set_message,
                "get_local_available_watchdogs":
                (sbd.get_local_available_watchdogs),
                "test_local_watchdog":
                sbd.test_local_watchdog,
            },
        )

    if name == "services":
        return bind_all(
            env,
            middleware.build(),
            {
                "start_service": services.start_service,
                "stop_service": services.stop_service,
                "enable_service": services.enable_service,
                "disable_service": services.disable_service,
                "get_services_info": services.get_services_info,
            },
        )
    if name == "scsi":
        return bind_all(
            env,
            middleware.build(),
            {
                "unfence_node": scsi.unfence_node,
                "unfence_node_mpath": scsi.unfence_node_mpath,
            },
        )

    if name == "stonith_agent":
        return bind_all(
            env,
            middleware.build(),
            {
                "describe_agent": stonith_agent.describe_agent,
                "list_agents": stonith_agent.list_agents,
            },
        )

    if name == "tag":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "config": tag.config,
                "create": tag.create,
                "remove": tag.remove,
                "update": tag.update,
            },
        )

    raise Exception("No library part '{0}'".format(name))
Exemplo n.º 5
0
def load_module(env, middleware_factory, name):
    if name == "acl":
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                "create_role": acl.create_role,
                "remove_role": acl.remove_role,
                "assign_role_not_specific": acl.assign_role_not_specific,
                "assign_role_to_target": acl.assign_role_to_target,
                "assign_role_to_group": acl.assign_role_to_group,
                "unassign_role_not_specific": acl.unassign_role_not_specific,
                "unassign_role_from_target": acl.unassign_role_from_target,
                "unassign_role_from_group": acl.unassign_role_from_group,
                "create_target": acl.create_target,
                "create_group": acl.create_group,
                "remove_target": acl.remove_target,
                "remove_group": acl.remove_group,
                "add_permission": acl.add_permission,
                "remove_permission": acl.remove_permission,
                "get_config": acl.get_config,
            })

    if name == "alert":
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                "create_alert": alert.create_alert,
                "update_alert": alert.update_alert,
                "remove_alert": alert.remove_alert,
                "add_recipient": alert.add_recipient,
                "update_recipient": alert.update_recipient,
                "remove_recipient": alert.remove_recipient,
                "get_all_alerts": alert.get_all_alerts,
            })

    if name == "booth":
        return bind_all(
            env,
            middleware.build(middleware_factory.booth_conf,
                             middleware_factory.cib),
            {
                "config_setup": booth.config_setup,
                "config_destroy": booth.config_destroy,
                "config_text": booth.config_text,
                "config_ticket_add": booth.config_ticket_add,
                "config_ticket_remove": booth.config_ticket_remove,
                "create_in_cluster": booth.create_in_cluster,
                "remove_from_cluster": booth.remove_from_cluster,
                "restart": booth.restart,
                "config_sync": booth.config_sync,
                "enable": booth.enable_booth,
                "disable": booth.disable_booth,
                "start": booth.start_booth,
                "stop": booth.stop_booth,
                "pull": booth.pull_config,
                "status": booth.get_status,
                "ticket_grant": booth.ticket_grant,
                "ticket_revoke": booth.ticket_revoke,
            })

    if name == 'constraint_colocation':
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                'set': constraint_colocation.create_with_set,
                'show': constraint_colocation.show,
            })

    if name == 'constraint_order':
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                'set': constraint_order.create_with_set,
                'show': constraint_order.show,
            })

    if name == 'constraint_ticket':
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                'set': constraint_ticket.create_with_set,
                'show': constraint_ticket.show,
                'add': constraint_ticket.create,
                'remove': constraint_ticket.remove,
            })

    if name == "fencing_topology":
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                "add_level": fencing_topology.add_level,
                "get_config": fencing_topology.get_config,
                "remove_all_levels": fencing_topology.remove_all_levels,
                "remove_levels_by_params":
                fencing_topology.remove_levels_by_params,
                "verify": fencing_topology.verify,
            })

    if name == "node":
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                "maintenance_unmaintenance_all":
                node.maintenance_unmaintenance_all,
                "maintenance_unmaintenance_list":
                node.maintenance_unmaintenance_list,
                "maintenance_unmaintenance_local":
                node.maintenance_unmaintenance_local,
                "standby_unstandby_all": node.standby_unstandby_all,
                "standby_unstandby_list": node.standby_unstandby_list,
                "standby_unstandby_local": node.standby_unstandby_local,
            })

    if name == "qdevice":
        return bind_all(
            env,
            middleware.build(),
            {
                "status":
                qdevice.qdevice_status_text,
                "setup":
                qdevice.qdevice_setup,
                "destroy":
                qdevice.qdevice_destroy,
                "start":
                qdevice.qdevice_start,
                "stop":
                qdevice.qdevice_stop,
                "kill":
                qdevice.qdevice_kill,
                "enable":
                qdevice.qdevice_enable,
                "disable":
                qdevice.qdevice_disable,
                # following commands are internal use only, called from pcsd
                "client_net_setup":
                qdevice.client_net_setup,
                "client_net_import_certificate":
                qdevice.client_net_import_certificate,
                "client_net_destroy":
                qdevice.client_net_destroy,
                "sign_net_cert_request":
                qdevice.qdevice_net_sign_certificate_request,
            })

    if name == "quorum":
        return bind_all(
            env, middleware.build(middleware_factory.corosync_conf_existing), {
                "add_device": quorum.add_device,
                "get_config": quorum.get_config,
                "remove_device": quorum.remove_device,
                "set_expected_votes_live": quorum.set_expected_votes_live,
                "set_options": quorum.set_options,
                "status": quorum.status_text,
                "status_device": quorum.status_device_text,
                "update_device": quorum.update_device,
            })

    if name == "resource_agent":
        return bind_all(
            env, middleware.build(), {
                "describe_agent": resource_agent.describe_agent,
                "list_agents": resource_agent.list_agents,
                "list_agents_for_standard_and_provider":
                resource_agent.list_agents_for_standard_and_provider,
                "list_ocf_providers": resource_agent.list_ocf_providers,
                "list_standards": resource_agent.list_standards,
            })

    if name == "resource":
        return bind_all(
            env, middleware.build(middleware_factory.cib), {
                "bundle_create": resource.bundle_create,
                "bundle_update": resource.bundle_update,
                "create": resource.create,
                "create_as_master": resource.create_as_master,
                "create_as_clone": resource.create_as_clone,
                "create_in_group": resource.create_in_group,
                "create_into_bundle": resource.create_into_bundle,
                "disable": resource.disable,
                "enable": resource.enable,
                "manage": resource.manage,
                "unmanage": resource.unmanage,
            })
    if name == "stonith":
        return bind_all(env, middleware.build(middleware_factory.cib), {
            "create": stonith.create,
            "create_in_group": stonith.create_in_group,
        })

    if name == "sbd":
        return bind_all(
            env, middleware.build(), {
                "enable_sbd": sbd.enable_sbd,
                "disable_sbd": sbd.disable_sbd,
                "get_cluster_sbd_status": sbd.get_cluster_sbd_status,
                "get_cluster_sbd_config": sbd.get_cluster_sbd_config,
                "get_local_sbd_config": sbd.get_local_sbd_config,
                "initialize_block_devices": sbd.initialize_block_devices,
                "get_local_devices_info": sbd.get_local_devices_info,
                "set_message": sbd.set_message,
            })

    if name == "stonith_agent":
        return bind_all(
            env, middleware.build(), {
                "describe_agent": stonith_agent.describe_agent,
                "list_agents": stonith_agent.list_agents,
            })

    raise Exception("No library part '{0}'".format(name))
Exemplo n.º 6
0
def load_module(env, middleware_factory, name):
    if name == 'constraint_order':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_order.create_with_set,
                'show': constraint_order.show,
            }
        )

    if name == 'constraint_colocation':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_colocation.create_with_set,
                'show': constraint_colocation.show,
            }
        )

    if name == 'constraint_ticket':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_ticket.create_with_set,
                'show': constraint_ticket.show,
                'add': constraint_ticket.create,
            }
        )

    if name == "quorum":
        return bind_all(
            env,
            middleware.build(middleware_factory.corosync_conf_existing),
            {
                "add_device": quorum.add_device,
                "get_config": quorum.get_config,
                "remove_device": quorum.remove_device,
                "set_options": quorum.set_options,
                "update_device": quorum.update_device,
            }
        )
    if name == "qdevice":
        return bind_all(
            env,
            middleware.build(),
            {
                "setup": qdevice.qdevice_setup,
                "destroy": qdevice.qdevice_destroy,
                "start": qdevice.qdevice_start,
                "stop": qdevice.qdevice_stop,
                "kill": qdevice.qdevice_kill,
                "enable": qdevice.qdevice_enable,
                "disable": qdevice.qdevice_disable,
            }
        )
    if name == "sbd":
        return bind_all(
            env,
            middleware.build(),
            {
                "enable_sbd": sbd.enable_sbd,
                "disable_sbd": sbd.disable_sbd,
                "get_cluster_sbd_status": sbd.get_cluster_sbd_status,
                "get_cluster_sbd_config": sbd.get_cluster_sbd_config,
                "get_local_sbd_config": sbd.get_local_sbd_config,
            }
        )

    raise Exception("No library part '{0}'".format(name))
Exemplo n.º 7
0
def load_module(env, middleware_factory, name):
    if name == "acl":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_role": acl.create_role,
                "remove_role": acl.remove_role,
                "assign_role_not_specific": acl.assign_role_not_specific,
                "assign_role_to_target": acl.assign_role_to_target,
                "assign_role_to_group": acl.assign_role_to_group,
                "unassign_role_not_specific": acl.unassign_role_not_specific,
                "unassign_role_from_target": acl.unassign_role_from_target,
                "unassign_role_from_group": acl.unassign_role_from_group,
                "create_target": acl.create_target,
                "create_group": acl.create_group,
                "remove_target": acl.remove_target,
                "remove_group": acl.remove_group,
                "add_permission": acl.add_permission,
                "remove_permission": acl.remove_permission,
                "get_config": acl.get_config,
            }
        )

    if name == "alert":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_alert": alert.create_alert,
                "update_alert": alert.update_alert,
                "remove_alert": alert.remove_alert,
                "add_recipient": alert.add_recipient,
                "update_recipient": alert.update_recipient,
                "remove_recipient": alert.remove_recipient,
                "get_all_alerts": alert.get_all_alerts,
            }
        )

    if name == "booth":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.booth_conf,
                middleware_factory.cib
            ),
            {
                "config_setup": booth.config_setup,
                "config_destroy": booth.config_destroy,
                "config_text": booth.config_text,
                "config_ticket_add": booth.config_ticket_add,
                "config_ticket_remove": booth.config_ticket_remove,
                "create_in_cluster": booth.create_in_cluster,
                "remove_from_cluster": booth.remove_from_cluster,
                "restart": booth.restart,
                "config_sync": booth.config_sync,
                "enable": booth.enable_booth,
                "disable": booth.disable_booth,
                "start": booth.start_booth,
                "stop": booth.stop_booth,
                "pull": booth.pull_config,
                "status": booth.get_status,
                "ticket_grant": booth.ticket_grant,
                "ticket_revoke": booth.ticket_revoke,
            }
        )

    if name == 'constraint_colocation':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_colocation.create_with_set,
                'show': constraint_colocation.show,
            }
        )

    if name == 'constraint_order':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_order.create_with_set,
                'show': constraint_order.show,
            }
        )

    if name == 'constraint_ticket':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_ticket.create_with_set,
                'show': constraint_ticket.show,
                'add': constraint_ticket.create,
                'remove': constraint_ticket.remove,
            }
        )

    if name == "fencing_topology":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "add_level": fencing_topology.add_level,
                "get_config": fencing_topology.get_config,
                "remove_all_levels": fencing_topology.remove_all_levels,
                "remove_levels_by_params":
                    fencing_topology.remove_levels_by_params,
                "verify": fencing_topology.verify,
            }
        )

    if name == "node":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "maintenance_unmaintenance_all":
                    node.maintenance_unmaintenance_all,
                "maintenance_unmaintenance_list":
                    node.maintenance_unmaintenance_list,
                "maintenance_unmaintenance_local":
                    node.maintenance_unmaintenance_local,
                "standby_unstandby_all": node.standby_unstandby_all,
                "standby_unstandby_list": node.standby_unstandby_list,
                "standby_unstandby_local": node.standby_unstandby_local,
            }
        )

    if name == "qdevice":
        return bind_all(
            env,
            middleware.build(),
            {
                "status": qdevice.qdevice_status_text,
                "setup": qdevice.qdevice_setup,
                "destroy": qdevice.qdevice_destroy,
                "start": qdevice.qdevice_start,
                "stop": qdevice.qdevice_stop,
                "kill": qdevice.qdevice_kill,
                "enable": qdevice.qdevice_enable,
                "disable": qdevice.qdevice_disable,
                # following commands are internal use only, called from pcsd
                "client_net_setup": qdevice.client_net_setup,
                "client_net_import_certificate":
                    qdevice.client_net_import_certificate,
                "client_net_destroy": qdevice.client_net_destroy,
                "sign_net_cert_request":
                    qdevice.qdevice_net_sign_certificate_request,
            }
        )

    if name == "quorum":
        return bind_all(
            env,
            middleware.build(middleware_factory.corosync_conf_existing),
            {
                "add_device": quorum.add_device,
                "get_config": quorum.get_config,
                "remove_device": quorum.remove_device,
                "set_expected_votes_live": quorum.set_expected_votes_live,
                "set_options": quorum.set_options,
                "status": quorum.status_text,
                "status_device": quorum.status_device_text,
                "update_device": quorum.update_device,
            }
        )

    if name == "resource_agent":
        return bind_all(
            env,
            middleware.build(),
            {
                "describe_agent": resource_agent.describe_agent,
                "list_agents": resource_agent.list_agents,
                "list_agents_for_standard_and_provider":
                    resource_agent.list_agents_for_standard_and_provider,
                "list_ocf_providers": resource_agent.list_ocf_providers,
                "list_standards": resource_agent.list_standards,
            }
        )

    if name == "resource":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib
            ),
            {
                "create": resource.create,
                "create_as_master": resource.create_as_master,
                "create_as_clone": resource.create_as_clone,
                "create_in_group": resource.create_in_group,
            }
        )
    if name == "stonith":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib
            ),
            {
                "create": stonith.create,
                "create_in_group": stonith.create_in_group,
            }
        )


    if name == "sbd":
        return bind_all(
            env,
            middleware.build(),
            {
                "enable_sbd": sbd.enable_sbd,
                "disable_sbd": sbd.disable_sbd,
                "get_cluster_sbd_status": sbd.get_cluster_sbd_status,
                "get_cluster_sbd_config": sbd.get_cluster_sbd_config,
                "get_local_sbd_config": sbd.get_local_sbd_config,
            }
        )

    if name == "stonith_agent":
        return bind_all(
            env,
            middleware.build(),
            {
                "describe_agent": stonith_agent.describe_agent,
                "list_agents": stonith_agent.list_agents,
            }
        )

    raise Exception("No library part '{0}'".format(name))
Exemplo n.º 8
0
def load_module(env, middleware_factory, name):
    # pylint: disable=too-many-return-statements, too-many-branches
    if name == "acl":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_role": acl.create_role,
                "remove_role": acl.remove_role,
                "assign_role_not_specific": acl.assign_role_not_specific,
                "assign_role_to_target": acl.assign_role_to_target,
                "assign_role_to_group": acl.assign_role_to_group,
                "unassign_role_not_specific": acl.unassign_role_not_specific,
                "unassign_role_from_target": acl.unassign_role_from_target,
                "unassign_role_from_group": acl.unassign_role_from_group,
                "create_target": acl.create_target,
                "create_group": acl.create_group,
                "remove_target": acl.remove_target,
                "remove_group": acl.remove_group,
                "add_permission": acl.add_permission,
                "remove_permission": acl.remove_permission,
                "get_config": acl.get_config,
            }
        )

    if name == "alert":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_alert": alert.create_alert,
                "update_alert": alert.update_alert,
                "remove_alert": alert.remove_alert,
                "add_recipient": alert.add_recipient,
                "update_recipient": alert.update_recipient,
                "remove_recipient": alert.remove_recipient,
                "get_all_alerts": alert.get_all_alerts,
            }
        )

    if name == "booth":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.booth_conf,
                middleware_factory.cib
            ),
            {
                "config_setup": booth.config_setup,
                "config_destroy": booth.config_destroy,
                "config_text": booth.config_text,
                "config_ticket_add": booth.config_ticket_add,
                "config_ticket_remove": booth.config_ticket_remove,
                "create_in_cluster": booth.create_in_cluster,
                "remove_from_cluster": booth.remove_from_cluster,
                "restart": booth.restart,
                "config_sync": booth.config_sync,
                "enable": booth.enable_booth,
                "disable": booth.disable_booth,
                "start": booth.start_booth,
                "stop": booth.stop_booth,
                "pull": booth.pull_config,
                "status": booth.get_status,
                "ticket_grant": booth.ticket_grant,
                "ticket_revoke": booth.ticket_revoke,
            }
        )

    if name == "cluster":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "add_link": cluster.add_link,
                "add_nodes": cluster.add_nodes,
                "node_clear": cluster.node_clear,
                "remove_links": cluster.remove_links,
                "remove_nodes": cluster.remove_nodes,
                "remove_nodes_from_cib": cluster.remove_nodes_from_cib,
                "setup": cluster.setup,
                "update_link": cluster.update_link,
                "verify": cluster.verify,
            }
        )

    if name == "remote_node":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
                middleware_factory.corosync_conf_existing,
            ),
            {
                "node_add_remote": remote_node.node_add_remote,
                "node_add_guest": remote_node.node_add_guest,
                "node_remove_remote": remote_node.node_remove_remote,
                "node_remove_guest": remote_node.node_remove_guest,
            }
        )

    if name == 'constraint_colocation':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_colocation.create_with_set,
                'show': constraint_colocation.show,
            }
        )

    if name == 'constraint_order':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_order.create_with_set,
                'show': constraint_order.show,
            }
        )

    if name == 'constraint_ticket':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_ticket.create_with_set,
                'show': constraint_ticket.show,
                'add': constraint_ticket.create,
                'remove': constraint_ticket.remove,
            }
        )

    if name == "fencing_topology":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "add_level": fencing_topology.add_level,
                "get_config": fencing_topology.get_config,
                "remove_all_levels": fencing_topology.remove_all_levels,
                "remove_levels_by_params":
                    fencing_topology.remove_levels_by_params,
                "verify": fencing_topology.verify,
            }
        )

    if name == "node":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "maintenance_unmaintenance_all":
                    node.maintenance_unmaintenance_all,
                "maintenance_unmaintenance_list":
                    node.maintenance_unmaintenance_list,
                "maintenance_unmaintenance_local":
                    node.maintenance_unmaintenance_local,
                "standby_unstandby_all": node.standby_unstandby_all,
                "standby_unstandby_list": node.standby_unstandby_list,
                "standby_unstandby_local": node.standby_unstandby_local,
            }
        )

    if name == "pcsd":
        return bind_all(
            env,
            middleware.build(),
            {
                "synchronize_ssl_certificate": pcsd.synchronize_ssl_certificate,
            }
        )

    if name == "qdevice":
        return bind_all(
            env,
            middleware.build(),
            {
                "status": qdevice.qdevice_status_text,
                "setup": qdevice.qdevice_setup,
                "destroy": qdevice.qdevice_destroy,
                "start": qdevice.qdevice_start,
                "stop": qdevice.qdevice_stop,
                "kill": qdevice.qdevice_kill,
                "enable": qdevice.qdevice_enable,
                "disable": qdevice.qdevice_disable,
                # following commands are internal use only, called from pcsd
                "client_net_setup": qdevice.client_net_setup,
                "client_net_import_certificate":
                    qdevice.client_net_import_certificate,
                "client_net_destroy": qdevice.client_net_destroy,
                "sign_net_cert_request":
                    qdevice.qdevice_net_sign_certificate_request,
            }
        )

    if name == "quorum":
        return bind_all(
            env,
            middleware.build(middleware_factory.corosync_conf_existing),
            {
                "add_device": quorum.add_device,
                "get_config": quorum.get_config,
                "remove_device": quorum.remove_device,
                "remove_device_heuristics": quorum.remove_device_heuristics,
                "set_expected_votes_live": quorum.set_expected_votes_live,
                "set_options": quorum.set_options,
                "status": quorum.status_text,
                "status_device": quorum.status_device_text,
                "update_device": quorum.update_device,
            }
        )

    if name == "resource_agent":
        return bind_all(
            env,
            middleware.build(),
            {
                "describe_agent": resource_agent.describe_agent,
                "list_agents": resource_agent.list_agents,
                "list_agents_for_standard_and_provider":
                    resource_agent.list_agents_for_standard_and_provider,
                "list_ocf_providers": resource_agent.list_ocf_providers,
                "list_standards": resource_agent.list_standards,
            }
        )

    if name == "resource":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
                middleware_factory.corosync_conf_existing,
            ),
            {
                "ban": resource.ban,
                "bundle_create": resource.bundle_create,
                "bundle_reset": resource.bundle_reset,
                "bundle_update": resource.bundle_update,
                "create": resource.create,
                "create_as_clone": resource.create_as_clone,
                "create_in_group": resource.create_in_group,
                "create_into_bundle": resource.create_into_bundle,
                "disable": resource.disable,
                "enable": resource.enable,
                "get_failcounts": resource.get_failcounts,
                "group_add": resource.group_add,
                "manage": resource.manage,
                "move": resource.move,
                "unmanage": resource.unmanage,
                "unmove_unban": resource.unmove_unban,
            }
        )

    if name == "cib_options":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
            ),
            {
                "set_operations_defaults": cib_options.set_operations_defaults,
                "set_resources_defaults": cib_options.set_resources_defaults,
            }
        )

    if name == "stonith":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.cib,
                middleware_factory.corosync_conf_existing,
            ),
            {
                "create": stonith.create,
                "create_in_group": stonith.create_in_group,
                "history_get_text": stonith.history_get_text,
                "history_cleanup": stonith.history_cleanup,
                "history_update": stonith.history_update,
            }
        )


    if name == "sbd":
        return bind_all(
            env,
            middleware.build(),
            {
                "enable_sbd": sbd.enable_sbd,
                "disable_sbd": sbd.disable_sbd,
                "get_cluster_sbd_status": sbd.get_cluster_sbd_status,
                "get_cluster_sbd_config": sbd.get_cluster_sbd_config,
                "get_local_sbd_config": sbd.get_local_sbd_config,
                "initialize_block_devices": sbd.initialize_block_devices,
                "get_local_devices_info": sbd.get_local_devices_info,
                "set_message": sbd.set_message,
                "get_local_available_watchdogs":
                    sbd.get_local_available_watchdogs,
                "test_local_watchdog": sbd.test_local_watchdog,
            }
        )

    if name == "stonith_agent":
        return bind_all(
            env,
            middleware.build(),
            {
                "describe_agent": stonith_agent.describe_agent,
                "list_agents": stonith_agent.list_agents,
            }
        )

    raise Exception("No library part '{0}'".format(name))
Exemplo n.º 9
0
def load_module(env, middleware_factory, name):
    if name == 'constraint_order':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_order.create_with_set,
                'show': constraint_order.show,
            }
        )

    if name == 'constraint_colocation':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_colocation.create_with_set,
                'show': constraint_colocation.show,
            }
        )

    if name == 'constraint_ticket':
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                'set': constraint_ticket.create_with_set,
                'show': constraint_ticket.show,
                'add': constraint_ticket.create,
            }
        )

    if name == "quorum":
        return bind_all(
            env,
            middleware.build(middleware_factory.corosync_conf_existing),
            {
                "add_device": quorum.add_device,
                "get_config": quorum.get_config,
                "remove_device": quorum.remove_device,
                "set_expected_votes_live": quorum.set_expected_votes_live,
                "set_options": quorum.set_options,
                "status": quorum.status_text,
                "status_device": quorum.status_device_text,
                "update_device": quorum.update_device,
            }
        )
    if name == "qdevice":
        return bind_all(
            env,
            middleware.build(),
            {
                "status": qdevice.qdevice_status_text,
                "setup": qdevice.qdevice_setup,
                "destroy": qdevice.qdevice_destroy,
                "start": qdevice.qdevice_start,
                "stop": qdevice.qdevice_stop,
                "kill": qdevice.qdevice_kill,
                "enable": qdevice.qdevice_enable,
                "disable": qdevice.qdevice_disable,
                # following commands are internal use only, called from pcsd
                "client_net_setup": qdevice.client_net_setup,
                "client_net_import_certificate":
                    qdevice.client_net_import_certificate,
                "client_net_destroy": qdevice.client_net_destroy,
                "sign_net_cert_request":
                    qdevice.qdevice_net_sign_certificate_request,
            }
        )
    if name == "sbd":
        return bind_all(
            env,
            middleware.build(),
            {
                "enable_sbd": sbd.enable_sbd,
                "disable_sbd": sbd.disable_sbd,
                "get_cluster_sbd_status": sbd.get_cluster_sbd_status,
                "get_cluster_sbd_config": sbd.get_cluster_sbd_config,
                "get_local_sbd_config": sbd.get_local_sbd_config,
            }
        )
    if name == "alert":
        return bind_all(
            env,
            middleware.build(middleware_factory.cib),
            {
                "create_alert": alert.create_alert,
                "update_alert": alert.update_alert,
                "remove_alert": alert.remove_alert,
                "add_recipient": alert.add_recipient,
                "update_recipient": alert.update_recipient,
                "remove_recipient": alert.remove_recipient,
                "get_all_alerts": alert.get_all_alerts,
            }
        )

    if name == "booth":
        return bind_all(
            env,
            middleware.build(
                middleware_factory.booth_conf,
                middleware_factory.cib
            ),
            {
                "config_setup": booth.config_setup,
                "config_destroy": booth.config_destroy,
                "config_show": booth.config_show,
                "config_ticket_add": booth.config_ticket_add,
                "config_ticket_remove": booth.config_ticket_remove,
                "create_in_cluster": booth.create_in_cluster,
                "remove_from_cluster": booth.remove_from_cluster,
                "config_sync": booth.config_sync,
                "enable": booth.enable_booth,
                "disable": booth.disable_booth,
                "start": booth.start_booth,
                "stop": booth.stop_booth,
                "pull": booth.pull_config,
                "status": booth.get_status,
                "ticket_grant": booth.ticket_grant,
                "ticket_revoke": booth.ticket_revoke,
            }
        )

    raise Exception("No library part '{0}'".format(name))