def load_configuration()

in cookbooks/aws-parallelcluster-environment/files/custom_action_executor/custom_action_executor.py [0:0]


    def load_configuration(self, args) -> CustomActionsConfig:
        """
        Load configuration.

        :param args: command line arguments
        :return: configuration object
        """
        node_type = args.node_type
        queue_name = args.queue_name
        pool_name = args.pool_name

        cluster_config = self._load_cluster_config(args.cluster_configuration)
        logging.debug(cluster_config)

        legacy_event = None
        event_name = None
        script_sequences_per_event = {}
        for event in LegacyEventName:
            current_event_name = event.map_to_current_name()
            script_sequences_per_event[event] = self._deserialize_script_sequences(
                cluster_config, current_event_name, node_type, queue_name, pool_name
            )
            if getattr(args, event.value):
                legacy_event = event
                event_name = current_event_name

        script_sequence = script_sequences_per_event[legacy_event]

        conf = CustomActionsConfig(
            legacy_event=legacy_event,
            node_type=node_type,
            queue_name=queue_name,
            event_name=event_name,
            pool_name=args.pool_name,
            region_name=args.region,
            stack_name=args.stack_name,
            cluster_name=args.cluster_name,
            script_sequence=script_sequence,
            script_sequences_per_event=script_sequences_per_event,
            dry_run=args.dry_run,
            can_execute=len(script_sequence) > 0,
            instance_id=args.instance_id,
            instance_type=args.instance_type,
            ip_address=args.ip_address,
            hostname=args.hostname,
            scheduler=args.scheduler,
            availability_zone=args.availability_zone,
            resource_name=args.resource_name,
            event_file_override=args.event_file_override,
            node_spec_file=args.node_spec_file,
        )

        logging.debug(conf)

        return conf