コード例 #1
0
ファイル: test_dynamic_schema.py プロジェクト: Jaware/cattle
def test_schema_lifecycle(context, client, service_client):  # NOQA
    schema = random_str()
    got_schema = client.by_id_schema(schema)
    assert got_schema is None

    made_schema = service_client.create_dynamic_schema(
        accountId=context.project.id,
        name=schema,
        parent='service',
        definition=DEFINITION,
        roles=["project", "owner", "member"])

    service_client.wait_success(made_schema)

    got_schema = client.by_id_schema(schema)
    assert got_schema is not None

    assert got_schema.resourceFields.fooBar.type == 'string'
    assert got_schema.resourceFields.fooBar.description == 'foo animal'

    made_schema = service_client.reload(made_schema)
    made_schema.remove()
    service_client.wait_success(made_schema)

    got_schema = client.by_id_schema(schema)
    assert got_schema is None
コード例 #2
0
ファイル: test_dynamic_schema.py プロジェクト: wzb56/cattle
def test_schema_lifecycle(context, client, service_client):  # NOQA
    schema = random_str()
    got_schema = client.by_id_schema(schema)
    assert got_schema is None

    made_schema = service_client.create_dynamic_schema(
        accountId=context.project.id,
        name=schema,
        parent='service',
        definition=DEFINITION,
        roles=["project", "owner", "member"])

    service_client.wait_success(made_schema)

    got_schema = client.by_id_schema(schema)
    assert got_schema is not None

    assert got_schema.resourceFields.fooBar.type == 'string'
    assert got_schema.resourceFields.fooBar.description == 'foo animal'

    made_schema = service_client.reload(made_schema)
    made_schema.remove()
    service_client.wait_success(made_schema)

    got_schema = client.by_id_schema(schema)
    assert got_schema is None
コード例 #3
0
def machine_context(admin_user_client, service_client,  # NOQA
                    super_client):  # NOQA
    ctx = create_context(admin_user_client, create_project=True,
                         add_host=True)
    remove_schemas(service_client, ['fooConfig', 'barConfig', 'machine'])
    service_client.wait_success(service_client.create_dynamic_schema(
                                name='fooConfig',
                                parent='baseMachineConfig',
                                definition=FOO_DEFINITION,
                                roles=['project', 'owner', 'member',
                                       'superadmin', 'readonly']))
    service_client.wait_success(service_client.create_dynamic_schema(
                                name='barConfig',
                                parent='baseMachineConfig',
                                definition=BAR_DEFINITION,
                                roles=['project', 'owner', 'member',
                                       'superadmin', 'readonly']))
    service_client.wait_success(service_client.create_dynamic_schema(
                                name='machine',
                                parent='physicalHost',
                                definition=MACHINE_DEFINITION,
                                roles=['project', 'owner', 'member']))
    service_client.wait_success(service_client.create_dynamic_schema(
                                name='machine',
                                parent='physicalHost',
                                definition=SUPER_MACHINE_DEFINITION,
                                roles=['superadmin', 'admin']))
    service_client.wait_success(service_client.create_dynamic_schema(
                                name='machine',
                                parent='physicalHost',
                                definition=MACHINE_READ_ONLY_DEFINITION,
                                roles=['readonly', 'agent']))
    super_client.reload_schema()
    ctx.client.reload_schema()
    return ctx
コード例 #4
0
ファイル: test_dynamic_schema.py プロジェクト: wzb56/cattle
def test_schema_roles(service_client, user_client, project_client):  # NOQA
    schema = random_str()
    got_schema = project_client.by_id_schema(schema)
    assert got_schema is None

    made_schema = service_client.create_dynamic_schema(
        name=schema,
        parent='baseMachineConfig',
        definition='''
        {
            "resourceFields": {
                 "fooBar": {
                      "type": "string",
                      "description": "foo animal"
                 }
            }
        }
        ''',
        roles=["project"])

    service_client.wait_success(made_schema)

    project_client.reload_schema()

    auth_check(project_client.schema, schema, 'r', {'fooBar': 'r'})

    made_schema = service_client.reload(made_schema)
    made_schema.remove()
    service_client.wait_success(made_schema)

    got_schema = project_client.by_id_schema(schema)
    assert got_schema is None

    made_schema2 = service_client.create_dynamic_schema(
        name=schema,
        parent='baseMachineConfig',
        definition='''
        {
            "resourceMethods" : ["GET", "PUT", "DELETE"],
            "collectionMethods" : [ "GET", "POST" ],
            "resourceFields": {
                 "fooBar": {
                      "type": "string",
                      "description": "foo animal",
                      "create": true,
                      "update": true
                 }
            }
        }
        ''',
        roles=["user"])

    service_client.wait_success(made_schema2)

    user_client.reload_schema()

    auth_check(user_client.schema, schema, 'crud', {'fooBar': 'cru'})

    made_schema2 = service_client.reload(made_schema2)
    made_schema2.remove()
    service_client.wait_success(made_schema2)

    got_schema = user_client.by_id_schema(schema)
    assert got_schema is None
コード例 #5
0
ファイル: test_dynamic_schema.py プロジェクト: Jaware/cattle
def test_schema_roles(service_client, user_client, project_client):  # NOQA
    schema = random_str()
    got_schema = project_client.by_id_schema(schema)
    assert got_schema is None

    made_schema = service_client.create_dynamic_schema(
        name=schema,
        parent='baseMachineConfig',
        definition='''
        {
            "resourceFields": {
                 "fooBar": {
                      "type": "string",
                      "description": "foo animal"
                 }
            }
        }
        ''',
        roles=["project"])

    service_client.wait_success(made_schema)

    project_client.reload_schema()

    auth_check(project_client.schema, schema, 'r', {
        'fooBar': 'r'
    })

    made_schema = service_client.reload(made_schema)
    made_schema.remove()
    service_client.wait_success(made_schema)

    got_schema = project_client.by_id_schema(schema)
    assert got_schema is None

    made_schema2 = service_client.create_dynamic_schema(
        name=schema,
        parent='baseMachineConfig',
        definition='''
        {
            "resourceMethods" : ["GET", "PUT", "DELETE"],
            "collectionMethods" : [ "GET", "POST" ],
            "resourceFields": {
                 "fooBar": {
                      "type": "string",
                      "description": "foo animal",
                      "create": true,
                      "update": true
                 }
            }
        }
        ''',
        roles=["user"])

    service_client.wait_success(made_schema2)

    user_client.reload_schema()

    auth_check(user_client.schema, schema, 'crud', {
        'fooBar': 'cru'
    })

    made_schema2 = service_client.reload(made_schema2)
    made_schema2.remove()
    service_client.wait_success(made_schema2)

    got_schema = user_client.by_id_schema(schema)
    assert got_schema is None
コード例 #6
0
def remove_schemas(service_client, schemas):  # NOQA
    for schema in schemas:
        got_schemas = service_client.list_dynamic_schema(name=schema)
        for got_schema in got_schemas:
            if got_schema.state != 'purged':
                service_client.wait_success(got_schema.remove())
コード例 #7
0
ファイル: test_machines.py プロジェクト: clearent/cattle
def cleanup(service_client, schemas):  # NOQA
    remove_schemas(service_client, ['fooConfig', 'barConfig', 'machine',
                                    'host'])
    for schema in schemas:
        service_client.wait_success(
            service_client.create_dynamic_schema(schema))
コード例 #8
0
ファイル: test_machines.py プロジェクト: zdoop/cattle
def cleanup(service_client, schemas):  # NOQA
    remove_schemas(service_client, ['fooConfig', 'barConfig', 'machine'])
    for schema in schemas:
        service_client.wait_success(
            service_client.create_dynamic_schema(schema))