python类Settings()的实例源码

sqs.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def report_status(my_settings: settings.Settings, req_type: str, reason: str, logical_res_id: str, status: str):
    raw_message = get_messages(my_settings)
    if len(raw_message) < 1:
        print("No message on queue... so we can't report back")
        return 1
    messages = [parse_message(m) for m in raw_message]
    filtered_messages = [m for m in messages if m.get('RequestType') == req_type]
    if logical_res_id != "":
        filtered_messages = [m for m in messages if m.get('LogicalResourceId') == logical_res_id]

    if len(filtered_messages) < 1:
        print("No message of type '{}', so unable to report back to CloudFormation".format(req_type))
        return 1

    for message in filtered_messages:
        response_for_cloud_formation = build_payload(message, status, reason)
        response_url_full = message.get('ResponseURL')
        response_url, response_params = response_url_full.split('?')
        json_response = json.dumps(response_for_cloud_formation)
        print("Posting SQS response\n{}".format(json_response))
        response = requests.put(
            url=response_url, params=response_params,
            data=str.encode(json_response)
        )
        if response.status_code != 200:
            print("Failed posting message {}".format(response))
            print("{}\n".format(response.text))

            return 1

        print("Deleting message", message.get('ReceiptHandle'))
        delete_messages(my_settings, message)

    return 0
sqs.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_messages(my_settings: settings.Settings):
    sqs = boto3.client(service_name='sqs', region_name=my_settings.region)
    response = sqs.receive_message(
        QueueUrl=my_settings.pcf_pcfcustomresourcesqsqueueurl,
        MaxNumberOfMessages=10,
        VisibilityTimeout=1
    )
    print("SQS Messages")
    print(json.dumps(response, indent="  "))

    return response.get('Messages', [])
configure_ert.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def configure_ert(my_settings: Settings):
    out, err, exit_code = om_manager.stage_product("cf", my_settings)
    if exit_code != 0:
        print("Failed to stage ERT")
        return out, err, exit_code

    out, err, exit_code = configure_tile_az(my_settings, 'cf')
    if exit_code != 0:
        print("Failed to configure az ERT")
        return out, err, exit_code

    out, err, exit_code = configure_ert_config(my_settings)
    if exit_code != 0:
        print("Failed to configure ERT")
        return out, err, exit_code

    out, err, exit_code = modify_vm_types(my_settings)
    if exit_code != 0:
        print("Failed to modify VM types for ERT")
        return out, err, exit_code

    out, err, exit_code = configure_ert_resources(my_settings)
    if exit_code != 0:
        print("Failed to configure ERT")
        return out, err, exit_code

    out, err, exit_code = configure_ert_multiaz_resources(my_settings)
    if exit_code != 0:
        print("Failed to configure Multi AZ ERT")
        return out, err, exit_code

    return create_required_databases(my_settings)
configure_ert.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def configure_ert_resources(my_settings: Settings):
    prefix = my_settings.stack_name
    if my_settings.pcf_input_elbprefix != "":
        prefix = my_settings.pcf_input_elbprefix
    ert_resource_ctx = {
        "router_lb_name": "{prefix}".format(prefix=prefix)
    }
    with open("templates/ert_resources_config.j2.json", 'r') as f:
        ert_resource_template = Template(f.read())
    ert_resource_config = om_manager.format_om_json_str(ert_resource_template.render(ert_resource_ctx))
    cmd = "{om_with_auth} configure-product -n cf -pr '{ert_resources}'".format(
        om_with_auth=om_manager.get_om_with_auth(my_settings),
        ert_resources=ert_resource_config
    )
    return util.exponential_backoff_cmd(cmd)
configure_ert.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def configure_ert_multiaz_resources(my_settings: Settings):
    if my_settings.pcf_pcfdeploymentsize == "Multi-AZ":
        with open("templates/ert_multiaz_resources_config.j2.json", 'r') as f:
            template = f.read()
    else:
        with open("templates/ert_singleaz_resources_config.j2.json", 'r') as f:
            template = f.read()

    ert_resource_config = om_manager.format_om_json_str(template)
    cmd = "{om_with_auth} configure-product -n cf -pr '{ert_resources}'".format(
        om_with_auth=om_manager.get_om_with_auth(my_settings),
        ert_resources=ert_resource_config
    )
    return util.exponential_backoff_cmd(cmd)
configure_ert.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def configure_ert_config(my_settings: Settings):
    cert, key = generate_ssl_cert(my_settings)
    ert_config_template_ctx = {
        "pcf_rds_address": my_settings.pcf_rdsaddress,
        "pcf_rds_username": my_settings.pcf_rdsusername,
        "dns_suffix": my_settings.pcf_input_domain,
        "pcf_rds_password": my_settings.pcf_rdspassword,
        "admin_email": my_settings.pcf_input_adminemail,
        "pcf_elastic_runtime_s3_buildpacks_bucket": my_settings.pcf_elasticruntimes3buildpacksbucket,
        "pcf_elastic_runtime_s3_droplets_bucket": my_settings.pcf_elasticruntimes3dropletsbucket,
        "pcf_elastic_runtime_s3_packages_bucket": my_settings.pcf_elasticruntimes3packagesbucket,
        "pcf_elastic_runtime_s3_resources_bucket": my_settings.pcf_elasticruntimes3resourcesbucket,
        "pcf_iam_access_key_id": my_settings.pcf_iamuseraccesskey,
        "pcf_iam_secret_access_key": my_settings.pcf_iamusersecretaccesskey,
        "pcf_companyname": my_settings.pcf_pcfcompanyname,
        "s3_endpoint": my_settings.get_s3_endpoint(),
        "s3_region": my_settings.region,
        "pcf_skipsslvalidation": my_settings.pcf_input_skipsslvalidation,
        "cert": cert.replace("\n", "\\n"),
        "key": key.replace("\n", "\\n")
    }
    with open("templates/ert_config.j2.json", 'r') as f:
        ert_template = Template(f.read())
    ert_config = om_manager.format_om_json_str(ert_template.render(ert_config_template_ctx))
    cmd = "{om_with_auth} configure-product -n cf -p '{ert_config}'".format(
        om_with_auth=om_manager.get_om_with_auth(my_settings),
        ert_config=ert_config
    )
    return util.exponential_backoff_cmd(cmd)
configure_ert.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def create_required_databases(my_settings: Settings):
    cmd = "mysql -h {hostname} --user={username} --port={port} --password={password} < templates/required_dbs.sql".format(
        hostname=my_settings.pcf_rdsaddress,
        username=my_settings.pcf_rdsusername,
        port=my_settings.pcf_rdsport,
        password=my_settings.pcf_rdspassword
    )

    return util.exponential_backoff_cmd(cmd)
configure_ert.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def modify_vm_types(my_settings: Settings):
    path = '/api/v0/vm_types'
    out, err, return_code = om_manager.curl_get(my_settings, path)
    if return_code != 0:
        if out != "":
            print(out)
        if err != "":
            print(err)
        return out, err, return_code

    response_json = json.loads(out)
    m4_exists = False

    for vm_type in response_json["vm_types"]:
        if vm_type["name"].startswith("m3"):
            response_json["vm_types"].remove(vm_type)
        elif vm_type["name"].startswith("m4"):
            m4_exists = True

    if not m4_exists:
        with open("templates/ert_vm_types.json") as template:
            additional_types = json.load(template)
            for a in additional_types:
                response_json["vm_types"].append(a)

    out, err, return_code = om_manager.curl_payload(my_settings, path, json.dumps(response_json), 'PUT')
    if return_code != 0:
        if out != "":
            print(out)
        if err != "":
            print(err)

    return out, err, return_code
configure_ert.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def generate_ssl_cert(my_settings: Settings):
    call("scripts/gen_ssl_certs.sh {}".format(my_settings.pcf_input_domain), shell=True)
    with open("{}.crt".format(my_settings.pcf_input_domain), 'r') as cert_file:
        cert = cert_file.read()

    with open("{}.key".format(my_settings.pcf_input_domain), 'r') as key_file:
        key = key_file.read()

    return cert, key
download_and_import_test.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def setUp(self):
        self.settings = Mock(settings.Settings)
        self.settings.ert_release_version = "1.9.0"
        self.settings.ert_release_sha256 = "xyz123"
        self.settings.stemcell_release_version = "123"
        self.settings.stemcell_release_sha256 = "123"
download_and_import.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def upload_stemcell(my_settings: settings.Settings, path: str):
    for stemcell in os.listdir(path):
        if stemcell.endswith(".tgz"):
            print("uploading stemcell {0}".format(stemcell))
            cmd = "{om_with_auth} upload-stemcell -s '{path}'".format(
                om_with_auth=om_manager.get_om_with_auth(my_settings), path=os.path.join(path, stemcell)
            )
            out, err, exit_code = util.exponential_backoff_cmd(cmd)
            if exit_code != 0:
                return out, err, exit_code

    return "", "", 0
download_and_import.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def upload_assets(my_settings: settings.Settings, path: str):
    for tile in os.listdir(path):
        if tile.endswith(".pivotal"):
            print("uploading product {0}".format(tile))

            cmd = "{om_with_auth} -r 3600 upload-product -p '{path}'".format(
                om_with_auth=om_manager.get_om_with_auth(my_settings), path=os.path.join(path, tile))

            out, err, exit_code = util.exponential_backoff_cmd(cmd)
            if exit_code != 0:
                return out, err, exit_code

    return "", "", 0
wait_condition_test.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def setUp(self):
        self.settings = Mock(Settings)
        self.settings.region = 'canada-1a'
        self.settings.pcf_pcfwaithandle = 'https://wait.example.com?signature=foo'
om_manager_test.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def setUp(self):
        self.settings = Mock(Settings)
        self.settings.opsman_url = 'https://cf.example.com'
        self.settings.opsman_user = 'admin'
        self.settings.pcf_opsmanageradminpassword = 'monkey-123'
delete_everything_test.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def setUp(self):
        self.settings = Mock(Settings)
        self.settings.region = 'canada-1a'
        self.settings.pcf_elasticruntimes3buildpacksbucket = 'bucket-bp'
        self.settings.pcf_elasticruntimes3dropletsbucket = 'bucket-dp'
        self.settings.pcf_elasticruntimes3packagesbucket = 'bucket-pkg'
        self.settings.pcf_elasticruntimes3resourcesbucket = 'bucket-rsc'
        self.settings.pcf_iam_access_key_id = 'key-vale'
        self.settings.pcf_iam_secret_access_key = 'key-secret'
        self.settings.resources_created = True
delete_check_test.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def setUp(self):
        self.settings = Mock(Settings)
        self.settings.region = 'canada-1a'
        self.settings.pcf_pcfcustomresourcesqsqueueurl = 'https://queue.example.com'

        self.response = {'Messages':
            [
                {
                    'Body': '{\n  "Type" : "Notification",\n  "MessageId" : "3c71d3a0-7d25-59b1-93bc-8213196855a7",\n  "TopicArn" : "arn:aws:sns:us-west-2:540420658117:custom-resource-maybe-4-SNSTopic-11NVYUIXWZTXZ",\n  "Subject" : "AWS CloudFormation custom resource request",\n  "Message" : "{\\"RequestType\\":\\"Delete\\",\\"ServiceToken\\":\\"arn:aws:sns:us-west-2:540420658117:custom-resource-maybe-4-SNSTopic-11NVYUIXWZTXZ\\",\\"ResponseURL\\":\\"https://cloudformation-custom-resource-response-uswest2.s3-us-west-2.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-west-2%3A530420658117%3Astack/pcf-stack/1e820540-4c58-11e7-a965-50d5ca0184f2%7CMyCustomResource%7C4dd2c9a0-04cb-4218-908c-e3cdfad3c634?AWSAccessKeyId=AKIAI4KYMPPRGQACET5Q&Expires=1496940077&Signature=uLbeSl3rtkuDa2xf0y9oMFc1zBI%3D\\",\\"StackId\\":\\"arn:aws:cloudformation:us-west-2:540420658117:stack/pcf-stack/1e820540-4c58-11e7-a965-50d5ca0184f2\\",\\"RequestId\\":\\"4dd2c9a0-04cb-4218-908c-e2cdfad3c634\\",\\"LogicalResourceId\\":\\"MyCustomResource\\",\\"ResourceType\\":\\"Custom::CloudFoundryPhase1\\",\\"ResourceProperties\\":{\\"ServiceToken\\":\\"arn:aws:sns:us-west-2:540410658117:custom-resource-maybe-4-SNSTopic-11NVZUIXWZTXZ\\",\\"ExampleProperty2\\":\\"ExampleValue2\\",\\"ExampleProperty1\\":\\"ExampleValue1\\"}}",\n  "Timestamp" : "2017-06-08T14:41:17.469Z",\n  "SignatureVersion" : "1",\n  "Signature" : "eNbpNJ+mzhH4qRP89tIWj96cK0nCirmNkwjQe/3DAgWnuhKKYKvtkffZu04uTynb/Tjt/5O7y/dfUy5cTmauhAx9g8gFkwH4vQVGhJOgEI6hFEHqRgY+8FwfeKowDiZTJyixwuqY9O1wqXxOb9q0rsLpApZCVwHsIhXio3ATdmJVNuJZhpC+0Dae1jnAg7nRyLAOrjEI8yaGLLoA1s/KdrZakclwGIgNj+/as4Vscbd1+VH59cpzryoHpOIjQrESTsCqCSSHh9H4j10wjDAeFxDY3lAZOZu+SlWOsCshv+4xRiJMmWY+WCgJ2UuAXnj7N6QPKwXwnPV1UmdkXGaGWQ==",\n  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-b95095beb82e8q6a046b3aafc7f4149a.pem",\n  "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:540420258117:custom-resource-maybe-4-SNSTopic-11NVYUIXWZTXZ:dc93952d-b252-4da3-a726-7df99631df02"\n}',
                    'MD5OfBody': '46e9054484367800fbd6bb8e13aaea36',
                    'MessageId': '6eef8c02-9874-41f8-8883-9788b911b773',
                    'ReceiptHandle': 'AQEBCLcjvnWL65ILiE9/L6WzthEatj3punqXWcxK/VGSfOhkjbfaMoy6GHtxPr/giOjO2gIW7buTv9Mkhk7/tpgbgJEm338nzoLOxqiW4s3fzoQWrjDu0HHpcD1KrMJBeVstxnLglEOOny2KRozfsLjbeH5HoXuo+8mrb0nwVUglIK2vBkAPHLOGu64/BPOR6dt2qgYK4hzytgXQprcLlS5rYrrpYkqBKjWt9PCuwSG244LuN3brNyRIgxPR9SQ/ja9CWocx7sS3Ri6tAVU8zP4OxjRmfdMj/EEdL3Wm5m4v7+hnGDnj0LSV/3UX6C1/ozIOtHY6bqN6HQ6nM48Dk6UTEm78ApFuYmOFnh5xfcAEJHHN9meqnMsYMe0l8hTEBRHDYII/W4K5APbUNNsuoU/R3uYgqWlNMFWDvxSORKPwy/2O0Kk51+ZE/fyGEaVncoof'
                },
                {
                    'Body': '{\n  "Type" : "Notification",\n  "MessageId" : "3c71d3a0-7d25-59b1-93bc-8213196855a7",\n  "TopicArn" : "arn:aws:sns:us-west-2:540420658117:custom-resource-maybe-4-SNSTopic-11NVYUIXWZTXZ",\n  "Subject" : "AWS CloudFormation custom resource request",\n  "Message" : "{\\"RequestType\\":\\"Create\\",\\"ServiceToken\\":\\"arn:aws:sns:us-west-2:540420658117:custom-resource-maybe-4-SNSTopic-11NVYUIXWZTXZ\\",\\"ResponseURL\\":\\"https://cloudformation-custom-resource-response-uswest2.s3-us-west-2.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-west-2%3A530420658117%3Astack/pcf-stack/1e820540-4c58-11e7-a965-50d5ca0184f2%7CMyCustomResource%7C4dd2c9a0-04cb-4218-908c-e3cdfad3c634?AWSAccessKeyId=AKIAI4KYMPPRGQACET5Q&Expires=1496940077&Signature=uLbeSl3rtkuDa2xf0y9oMFc1zBI%3D\\",\\"StackId\\":\\"arn:aws:cloudformation:us-west-2:540420658117:stack/pcf-stack/1e820540-4c58-11e7-a965-50d5ca0184f2\\",\\"RequestId\\":\\"4dd2c9a0-04cb-4218-908c-e2cdfad3c634\\",\\"LogicalResourceId\\":\\"MyCustomResource\\",\\"ResourceType\\":\\"Custom::CloudFoundryPhase1\\",\\"ResourceProperties\\":{\\"ServiceToken\\":\\"arn:aws:sns:us-west-2:540410658117:custom-resource-maybe-4-SNSTopic-11NVZUIXWZTXZ\\",\\"ExampleProperty2\\":\\"ExampleValue2\\",\\"ExampleProperty1\\":\\"ExampleValue1\\"}}",\n  "Timestamp" : "2017-06-08T14:41:17.469Z",\n  "SignatureVersion" : "1",\n  "Signature" : "eNbpNJ+mzhH4qRP89tIWj96cK0nCirmNkwjQe/3DAgWnuhKKYKvtkffZu04uTynb/Tjt/5O7y/dfUy5cTmauhAx9g8gFkwH4vQVGhJOgEI6hFEHqRgY+8FwfeKowDiZTJyixwuqY9O1wqXxOb9q0rsLpApZCVwHsIhXio3ATdmJVNuJZhpC+0Dae1jnAg7nRyLAOrjEI8yaGLLoA1s/KdrZakclwGIgNj+/as4Vscbd1+VH59cpzryoHpOIjQrESTsCqCSSHh9H4j10wjDAeFxDY3lAZOZu+SlWOsCshv+4xRiJMmWY+WCgJ2UuAXnj7N6QPKwXwnPV1UmdkXGaGWQ==",\n  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-b95095beb82e8q6a046b3aafc7f4149a.pem",\n  "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:540420258117:custom-resource-maybe-4-SNSTopic-11NVYUIXWZTXZ:dc93952d-b252-4da3-a726-7df99631df02"\n}',
                    'MD5OfBody': '46e9054484367800fbd6bb8e13aaea36',
                    'MessageId': '6eef8c02-9874-41f8-8883-9788b911b773',
                    'ReceiptHandle': 'AQEBCLcjvnWL65ILiE9/L6WzthEatj3punqXWcxK/VGSfOhkjbfaMoy6GHtxPr/giOjO2gIW7buTv9Mkhk7/tpgbgJEm338nzoLOxqiW4s3fzoQWrjDu0HHpcD1KrMJBeVstxnLglEOOny2KRozfsLjbeH5HoXuo+8mrb0nwVUglIK2vBkAPHLOGu64/BPOR6dt2qgYK4hzytgXQprcLlS5rYrrpYkqBKjWt9PCuwSG244LuN3brNyRIgxPR9SQ/ja9CWocx7sS3Ri6tAVU8zP4OxjRmfdMj/EEdL3Wm5m4v7+hnGDnj0LSV/3UX6C1/ozIOtHY6bqN6HQ6nM48Dk6UTEm78ApFuYmOFnh5xfcAEJHHN9meqnMsYMe0l8hTEBRHDYII/W4K5APbUNNsuoU/R3uYgqWlNMFWDvxSORKPwy/2O0Kk51+ZE/fyGEaVncoof'
                }
            ],
            'ResponseMetadata': {
                'HTTPStatusCode': 200, 'HTTPHeaders': {
                    'connection': 'keep-alive', 'server': 'Server',
                    'content-length': '3342',
                    'content-type': 'text/xml',
                    'date': 'Thu, 08 Jun 2017 15:20:07 GMT',
                    'x-amzn-requestid': '116092e7-fee7-5580-b276-c3549380b837'
                },
                'RequestId': '116092e7-fee7-5580-b276-c3549380b837', 'RetryAttempts': 0
            }
        }
accept_eula.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def accept_eulas(my_settings: settings.Settings):
    out, err, exit_code = accept_ert_eula(my_settings)
    if exit_code != 0:
        return out, err, exit_code
    return accept_stemcell_eula(my_settings)
accept_eula.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def accept_stemcell_eula(my_settings: settings.Settings):
    response, result = util.exponential_backoff(
        functools.partial(post_eula, my_settings, "stemcells", my_settings.stemcell_release_id),
        check_eula_succeeded
    )
    if result == EULAResult.SUCCESS:
        return "Success", "", 0
    else:
        return "Failed to accept stemcell EULA; status code from Pivotal Network {}".format(response.status_code), "", 1
om_manager.py 文件源码 项目:aws-pcf-quickstart 作者: cf-platform-eng 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def config_opsman_auth(my_settings: settings.Settings):
    cmd = "om -k --target {url} configure-authentication --username '{user}' --password '{password}' --decryption-passphrase '{password}'".format(
        url=my_settings.opsman_url,
        user=my_settings.opsman_user,
        password=my_settings.pcf_opsmanageradminpassword
    )
    return util.exponential_backoff_cmd(cmd)
wsgiserver.py 文件源码 项目:gif-disco 作者: futurice 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def add_new_gif(visible_gifs, gif):
    """Add new gif to visible gifs, this might push the oldest away
    from visible!
    """
    new_gif = {
        'id': gif['id'],
        'position': {'bottom': 40, 'left': 50},
        'height': gif['height'],
        'added': int(time.time())
    }

    if len(visible_gifs) >= settings['maxVisible']:
        oldest = visible_gifs.pop(0)
        logger.info('Popped oldest %s' % oldest['id'])
        # Take position from the oldest
        new_gif['position'] = oldest['position']
        new_gif['height'] = oldest['height']

    visible_gifs.append(new_gif)
machine_api.py 文件源码 项目:Mohou_Box-master 作者: mohou 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_serial_list():
    baselist=[]
    baselist = baselist \
               + glob.glob("/dev/ttyUSB*") \
               + glob.glob("/dev/ttyACM*") \
               + glob.glob("/dev/tty.usb*") \
               + glob.glob("/dev/cu.*") \
               + glob.glob("/dev/rfcomm*")

    additionalPorts = WebConfig.settings().get(["serial", "additionalPorts"])
    for additional in additionalPorts:
        baselist += glob.glob(additional)

    if "AUTO" not in baselist:
        baselist.insert(0, "AUTO")
    prev = WebConfig.settings().get(["serial", "port"])
    if prev in baselist:
        baselist.remove(prev)
        baselist.insert(0, prev)
    if WebConfig.settings().getBoolean(["devel", "virtualPrinter", "enabled"]):
        baselist.append("VIRTUAL")
    return baselist
app.py 文件源码 项目:caoliuscrapy 作者: leyle 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def __init__(self):
        handlers = [
            URLSpec(r'/', IndexHandler),
            URLSpec(r'/cat/(\d{1,2})', CatHandler, name="cat"),
            URLSpec(r'/detail/(\w+)', DetailHandler),
            URLSpec(r'/login', LoginHandler),
        ]

        tornado.web.Application.__init__(self, handlers, **settings.settings)
        self.db = torndb.Connection(host=settings.DBHOST, database=settings.DATABASE, user=settings.DBUSER, password=settings.DBPWD)
run.py 文件源码 项目:gelyung 作者: denglj 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self):
        logging.info("init MainApplication with settings: %s" % str(settings))
        tornado.web.Application.__init__(self, url_patterns, **settings)
wsgiserver.py 文件源码 项目:gif-disco 作者: futurice 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def get_settings(env, start_response):
    start_response('200 OK', [('Content-Type', 'application/json')])
    return [json.dumps(settings)]


# Functions for responding to file requests etc.
wsgiserver.py 文件源码 项目:gif-disco 作者: futurice 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def get_settings(env, start_response):
    start_response('200 OK', [('Content-Type', 'application/json')])
    return [json.dumps(settings)]


# Functions for responding to file requests etc.
app.py 文件源码 项目:PythonSkillTree 作者: w4n9H 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __init__(self):
        tornado.web.Application.__init__(self, url_patterns, **settings)
agent.py 文件源码 项目:volttron-applications 作者: VOLTTRON 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def set_local_control(self,status):
        print("Setting local control to "+str(status))
        self.usr_local_control = int(status)
                self.local_control = self.usr_local_control

        #fix into persistent memory
        settings[2] = self.usr_local_control
        f = open(self.cwd+'/../thermostat/settings.py','w')
        f.write('settings = ' + str(settings))
        f.close()
agent.py 文件源码 项目:volttron-applications 作者: VOLTTRON 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def read_temp(self):
        temp = self.instance.read_temp()
                return str(temp),str(settings[1])
agent.py 文件源码 项目:volttron-applications 作者: VOLTTRON 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def set_mode(self,mode):
        self.user_mode =str(mode)

        #fix into persistent memory
        settings[0] = self.user_mode
        f = open(self.cwd+'/../thermostat/settings.py','w')
        f.write('settings = ' + str(settings))
        f.close()
agent.py 文件源码 项目:volttron-applications 作者: VOLTTRON 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def set_setpoint(self,setpoint):
        self.instance.set_setpoint(float(setpoint))

        #fix into persistent memory
        settings[1] = float(setpoint)
        f = open(self.cwd+'/../thermostat/settings.py','w')
        f.write('settings = ' + str(settings))
        f.close()


问题


面经


文章

微信
公众号

扫码关注公众号