Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 32... Línea 32...
32
        $args = array_intersect_key(
32
        $args = array_intersect_key(
33
            ClientResolver::getDefaultArguments(),
33
            ClientResolver::getDefaultArguments(),
34
            ['service' => true, 'region' => true]
34
            ['service' => true, 'region' => true]
35
        );
35
        );
36
        $args['region']['required'] = false;
36
        $args['region']['required'] = false;
-
 
37
        unset($args['region']['fn']);
-
 
38
        unset($args['region']['default']);
Línea 37... Línea 39...
37
 
39
 
38
        return $args + [
40
        return $args + [
39
            'client_factory' => [
41
                'client_factory' => [
40
                'type' => 'config',
42
                    'type' => 'config',
41
                'valid' => ['callable'],
43
                    'valid' => ['callable'],
42
                'doc' => 'A callable that takes an array of client'
44
                    'doc' => 'A callable that takes an array of client'
43
                    . ' configuration arguments and returns a regionalized'
45
                        . ' configuration arguments and returns a regionalized'
44
                    . ' client.',
46
                        . ' client.',
45
                'required' => true,
47
                    'required' => true,
46
                'internal' => true,
48
                    'internal' => true,
47
                'default' => function (array $args) {
49
                    'default' => function (array $args) {
48
                    $namespace = manifest($args['service'])['namespace'];
50
                        $namespace = manifest($args['service'])['namespace'];
49
                    $klass = "Aws\\{$namespace}\\{$namespace}Client";
51
                        $klass = "Aws\\{$namespace}\\{$namespace}Client";
Línea 50... Línea 52...
50
                    $region = isset($args['region']) ? $args['region'] : null;
52
                        $region = isset($args['region']) ? $args['region'] : null;
51
 
53
 
52
                    return function (array $args) use ($klass, $region) {
54
                        return function (array $args) use ($klass, $region) {
53
                        if ($region && empty($args['region'])) {
55
                            if ($region && empty($args['region'])) {
Línea 54... Línea 56...
54
                            $args['region'] = $region;
56
                                $args['region'] = $region;
55
                        }
57
                            }
56
 
58
 
57
                        return new $klass($args);
59
                            return new $klass($args);
58
                    };
60
                        };
59
                },
61
                    },
60
            ],
62
                ],
61
            'partition' => [
63
                'partition' => [
62
                'type'    => 'config',
64
                    'type'    => 'config',
63
                'valid'   => ['string', PartitionInterface::class],
65
                    'valid'   => ['string', PartitionInterface::class],
64
                'doc'     => 'AWS partition to connect to. Valid partitions'
66
                    'doc'     => 'AWS partition to connect to. Valid partitions'
65
                    . ' include "aws," "aws-cn," and "aws-us-gov." Used to'
67
                        . ' include "aws," "aws-cn," and "aws-us-gov." Used to'
66
                    . ' restrict the scope of the mapRegions method.',
68
                        . ' restrict the scope of the mapRegions method.',
67
                'default' => function (array $args) {
69
                    'default' => function (array $args) {
68
                    $region = isset($args['region']) ? $args['region'] : '';
70
                        $region = isset($args['region']) ? $args['region'] : '';
69
                    return PartitionEndpointProvider::defaultProvider()
71
                        return PartitionEndpointProvider::defaultProvider()
70
                        ->getPartition($region, $args['service']);
72
                            ->getPartition($region, $args['service']);
71
                },
73
                    },
72
                'fn'      => function ($value, array &$args) {
74
                    'fn'      => function ($value, array &$args) {
73
                    if (is_string($value)) {
75
                        if (is_string($value)) {
Línea 74... Línea 76...
74
                        $value = PartitionEndpointProvider::defaultProvider()
76
                            $value = PartitionEndpointProvider::defaultProvider()
75
                            ->getPartitionByName($value);
77
                                ->getPartitionByName($value);
76
                    }
78
                        }
77
 
79
 
78
                    if (!$value instanceof PartitionInterface) {
80
                        if (!$value instanceof PartitionInterface) {
-
 
81
                            throw new \InvalidArgumentException('No valid partition'
-
 
82
                                . ' was provided. Provide a concrete partition or'
-
 
83
                                . ' the name of a partition (e.g., "aws," "aws-cn,"'
-
 
84
                                . ' or "aws-us-gov").'
-
 
85
                            );
79
                        throw new \InvalidArgumentException('No valid partition'
86
                        }
-
 
87
                        $ruleset = EndpointDefinitionProvider::getEndpointRuleset(
-
 
88
                            $args['service'],
80
                            . ' was provided. Provide a concrete partition or'
89
                            isset($args['version']) ? $args['version'] : 'latest'
81
                            . ' the name of a partition (e.g., "aws," "aws-cn,"'
-
 
82
                            . ' or "aws-us-gov").'
-
 
83
                        );
-
 
84
                    }
-
 
85
                    $ruleset = EndpointDefinitionProvider::getEndpointRuleset(
-
 
86
                        $args['service'],
-
 
87
                        isset($args['version']) ? $args['version'] : 'latest'
90
                        );
88
                    );
91
                        $partitions = EndpointDefinitionProvider::getPartitions();
89
                    $partitions = EndpointDefinitionProvider::getPartitions();
-
 
90
                    $args['endpoint_provider'] = new EndpointProviderV2($ruleset, $partitions);
92
                        $args['endpoint_provider'] = new EndpointProviderV2($ruleset, $partitions);
Línea 91... Línea 93...
91
                }
93
                    }
92
            ],
94
                ],
93
        ];
95
            ];