示例#1
0
def chalice_deployer():
    ui = chalice.utils.UI()
    osutils = chalice.utils.OSUtils()
    dependency_builder = DependencyBuilder(osutils)
    d = chalice.deploy.packager.LambdaDeploymentPackager(
        osutils=osutils, dependency_builder=dependency_builder, ui=ui)
    return d
示例#2
0
def create_default_deployer(session, ui=None):
    # type: (botocore.session.Session, UI) -> Deployer
    if ui is None:
        ui = UI()
    aws_client = TypedAWSClient(session)
    api_gateway_deploy = APIGatewayDeployer(aws_client, ui)

    osutils = OSUtils()
    dependency_builder = DependencyBuilder(osutils)
    packager = LambdaDeploymentPackager(osutils=osutils,
                                        dependency_builder=dependency_builder,
                                        ui=ui)
    lambda_deploy = LambdaDeployer(
        aws_client, packager, ui, osutils,
        ApplicationPolicyHandler(osutils, AppPolicyGenerator(osutils)))
    return Deployer(api_gateway_deploy, lambda_deploy, ui)
示例#3
0
文件: package.py 项目: josie00/nms
def create_app_packager(config):
    # type: (Config) -> AppPackager
    osutils = OSUtils()
    ui = UI()
    # The config object does not handle a default value
    # for autogen'ing a policy so we need to handle this here.
    return AppPackager(
        # We're add place holder values that will be filled in once the
        # lambda function is deployed.
        SAMTemplateGenerator(
            CFNSwaggerGenerator('{region}', {}),
            ApplicationPolicyHandler(osutils, AppPolicyGenerator(osutils))),
        LambdaDeploymentPackager(
            osutils=osutils,
            dependency_builder=DependencyBuilder(osutils),
            ui=ui,
        ))
示例#4
0
 def _make_appdir_and_dependency_builder(self, reqs, tmpdir, runner):
     appdir = str(_create_app_structure(tmpdir))
     self._write_requirements_txt(reqs, appdir)
     builder = DependencyBuilder(OSUtils(), runner)
     return appdir, builder
示例#5
0
parser.add_argument("--wheels-dir", default="vendor.in")
args = parser.parse_args()

if args.build_wheels:
    if platform.system() != "Linux":
        parser.exit(f"{parser.prog}: Expected to run on a Linux system.")
    shutil.rmtree(args.wheels_dir)
    subprocess.call(
        ["git", "checkout", "--",
         os.path.join(args.wheels_dir, ".keep")])
    for wheel_identifier in args.build_wheels:
        build_wheel(wheel_identifier, args.wheels_dir)
    print(f'Please run "git add {args.wheels_dir}" and commit the result.')
else:
    with TemporaryDirectory() as td:
        python_version = f"python{sys.version_info.major}.{sys.version_info.minor}"
        abi = LambdaDeploymentPackager._RUNTIME_TO_ABI[python_version]
        compat_wheels, missing_wheels = DependencyBuilder(
            OSUtils())._download_dependencies(abi, td, args.pip_reqs)
        need_wheels = [
            w for w in missing_wheels
            if not os.path.exists(os.path.join(args.wheels_dir, w.identifier))
        ]
        if need_wheels:
            msg = 'Missing wheels: {}. Please run "{}" in a Linux VM'
            parser.exit(
                msg.format(
                    ", ".join(wheel.identifier for wheel in need_wheels),
                    " ".join(sys.argv + ["--build-wheels"] +
                             [w.identifier for w in missing_wheels])))