• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang client.NewSession函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/heartsg/dasea/keystone/keystoneclient/client.NewSession函数的典型用法代码示例。如果您正苦于以下问题:Golang NewSession函数的具体用法?Golang NewSession怎么用?Golang NewSession使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了NewSession函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: NewAuthToken

func NewAuthToken(opts *Opts) *AuthToken {
	// Init session, session's auth shall be a auto-fetch password
	// or token authentication for a service user (have super previlege)
	// We will use this service user for:
	// 1. validate a normal user token (sent in via request's "X-Auth-Token")
	// 2. validate another service token (sent in via request's "X-Service-Token")
	// 3. Retrieve revocation list from identity server (not implemented)
	params := &types.AuthRequestParams{
		Username:    opts.Username,
		UserId:      opts.UserId,
		Password:    opts.Password,
		Token:       opts.Token,
		DomainName:  opts.UserDomainName,
		DomainId:    opts.UserDomainId,
		ProjectName: opts.ProjectName,
		ProjectId:   opts.ProjectId,
		Scope:       true,
	}
	var auth client.Auth
	if opts.AuthMethod == "password" {
		auth = &client.AuthPassword{Params: params}
	} else {
		auth = &client.AuthToken{Params: params}
	}
	s := client.NewSession(&opts.Client, auth)

	t := cache.NewTokenCache(opts.MemcacheServers, opts.TokenCacheTime)

	return &AuthToken{session: s, cache: t, delayAuthDecision: opts.DelayAuthDecision}
}
开发者ID:heartsg,项目名称:dasea,代码行数:30,代码来源:authtoken.go


示例2: TestUserGet

func TestUserGet(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/users/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/users/xyz", r.URL.Path)
		}

		w.Write([]byte(`{
    "user": {
        "default_project_id": "263fd9",
        "description": "John Smith's user",
        "domain_id": "1789d1",
        "email": "[email protected]",
        "enabled": true,
        "id": "9fe1d3",
        "links": {
            "self": "https://identity:35357/v3/users/9fe1d3"
        },
        "name": "jsmith"
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	userResource := &User{
		Session: session,
	}
	user, err := userResource.Get("xyz")

	if err != nil {
		t.Error(err)
	}

	if user.Id != "9fe1d3" {
		t.Errorf("Expected id == %q; got %q", "9fe1d3", user.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:56,代码来源:users_test.go


示例3: TestProjectGet

func TestProjectGet(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/projects/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/projects/xyz", r.URL.Path)
		}

		w.Write([]byte(`{
    "project": {
        "description": null,
        "domain_id": "default",
        "enabled": true,
        "id": "0c4e939acacf4376bdcd1129f1a054ad",
        "links": {
            "self": "http://localhost:5000/v3/projects/0c4e939acacf4376bdcd1129f1a054ad"
        },
        "name": "admin",
        "parent_id": null
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	projectResource := &Project{
		Session: session,
	}
	project, err := projectResource.Get("xyz")

	if err != nil {
		t.Error(err)
	}

	if project.Id != "0c4e939acacf4376bdcd1129f1a054ad" {
		t.Errorf("Expected id == %q; got %q", "default", project.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:55,代码来源:projects_test.go


示例4: TestCredentialGet

func TestCredentialGet(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/credentials/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/credentials/xyz", r.URL.Path)
		}

		w.Write([]byte(`{
    "credential": {
        "user_id": "bb5476fd12884539b41d5a88f838d773",
        "links": {
            "self": "http://localhost:5000/v3/credentials/207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7"
        },
        "blob": "{\"access\": \"a42a27755ce6442596b049bd7dd8a563\", \"secret\": \"71faf1d40bb24c82b479b1c6fbbd9f0c\", \"trust_id\": null}",
        "project_id": "6e01855f345f4c59812999b5e459137d",
        "type": "ec2",
        "id": "207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7"
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	credentialResource := &Credential{
		Session: session,
	}
	credential, err := credentialResource.Get("xyz")

	if err != nil {
		t.Error(err)
	}

	if credential.Id != "207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7" {
		t.Errorf("Expected id == %q; got %q", "207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7", credential.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:54,代码来源:credentials_test.go


示例5: TestGroupGet

func TestGroupGet(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/groups/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/groups/xyz", r.URL.Path)
		}

		w.Write([]byte(`{
    "group": {
        "domain_id": "default",
        "description": "Contract developers",
        "id": "c0d675eac29945ad9dfd08aa1bb75751",
        "links": {
            "self": "http://localhost:5000/v3/groups/c0d675eac29945ad9dfd08aa1bb75751"
        },
        "name": "Contract developers"
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	groupResource := &Group{
		Session: session,
	}
	group, err := groupResource.Get("xyz")

	if err != nil {
		t.Error(err)
	}

	if group.Id != "c0d675eac29945ad9dfd08aa1bb75751" {
		t.Errorf("Expected id == %q; got %q", "c0d675eac29945ad9dfd08aa1bb75751", group.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:53,代码来源:groups_test.go


示例6: TestDomainGet

func TestDomainGet(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/domains/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/domains/xyz", r.URL.Path)
		}

		w.Write([]byte(`{
    "domain": {
        "description": "Owns users and tenants (i.e. projects) available on Identity API v2.",
        "enabled": true,
        "id": "default",
        "links": {
            "self": "http://localhost:5000/v3/domains/default"
        },
        "name": "Default"
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	domainResource := &Domain{
		Session: session,
	}
	domain, err := domainResource.Get("xyz")

	if err != nil {
		t.Error(err)
	}

	if domain.Id != "default" {
		t.Errorf("Expected id == %q; got %q", "default", domain.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:53,代码来源:domains_test.go


示例7: TestRegionGet

func TestRegionGet(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/regions/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/regions/xyz", r.URL.Path)
		}

		w.Write([]byte(`{
    "region": {
        "description": "My subregion 3",
        "id": "RegionThree",
        "links": {
            "self": "http://localhost:5000/v3/regions/RegionThree"
        },
        "parent_region_id": "RegionOne"
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	regionResource := &Region{
		Session: session,
	}
	region, err := regionResource.Get("xyz")

	if err != nil {
		t.Error(err)
	}

	if region.Id != "RegionThree" {
		t.Errorf("Expected id == %q; got %q", "RegionThree", region.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:52,代码来源:regions_test.go


示例8: TestRoleGet

func TestRoleGet(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/roles/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/roles/xyz", r.URL.Path)
		}

		w.Write([]byte(`{
    "role": {
        "id": "1e443fa8cee3482a8a2b6954dd5c8f12",
        "links": {
            "self": "http://localhost:5000/v3/roles/1e443fa8cee3482a8a2b6954dd5c8f12"
        },
        "name": "Developer"
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	roleResource := &Role{
		Session: session,
	}
	role, err := roleResource.Get("xyz")

	if err != nil {
		t.Error(err)
	}

	if role.Id != "1e443fa8cee3482a8a2b6954dd5c8f12" {
		t.Errorf("Expected id == %q; got %q", "1e443fa8cee3482a8a2b6954dd5c8f12", role.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:51,代码来源:roles_test.go


示例9: TestUserChangePassword

func TestUserChangePassword(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.POST {
			t.Errorf("Expected method %q; got %q", requests.POST, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/users/xyz/password" {
			t.Errorf("Expected 'url' == %q; got %q", "/users/xyz/password", r.URL.Path)
		}

		body, _ := ioutil.ReadAll(r.Body)
		defer r.Body.Close()
		if string(body) != `{"user":{"password":"123","original_password":"456"}}` {
			t.Errorf("Expected auth request body == %q; got %q",
				`{"user":{"password":"123","original_password":"456"}}`,
				string(body))
		}
	}))

	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	userResource := &User{
		Session: session,
	}
	err := userResource.ChangePassword("xyz", "123", "456")
	if err != nil {
		t.Error(err)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:45,代码来源:users_test.go


示例10: TestUserDelete

func TestUserDelete(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.DELETE {
			t.Errorf("Expected method %q; got %q", requests.DELETE, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/users/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/users/xyz", r.URL.Path)
		}
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	userResource := &User{
		Session: session,
	}
	err := userResource.Delete("xyz")

	if err != nil {
		t.Error(err)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:37,代码来源:users_test.go


示例11: TestGroupList

func TestGroupList(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}

		//test query parameter
		q := r.URL.Query()
		if q.Get("domain_id") != "default" {
			t.Errorf("Expected 'domain_id' == %q; got %q", "default", q.Get("domain_id"))
		}

		w.Write([]byte(`{
    "links": {
        "self": "http://localhost:5000/v3/groups",
        "previous": null,
        "next": null
    },
    "groups": [
        {
            "domain_id": "default",
            "description": "non-admin group",
            "id": "96372bbb152f475aa37e9a76a25a029c",
            "links": {
                "self": "http://localhost:5000/v3/groups/96372bbb152f475aa37e9a76a25a029c"
            },
            "name": "nonadmins"
        },
        {
            "domain_id": "default",
            "description": "openstack admin group",
            "id": "9ce0ad4e58a84d7a97b92f7955d10c92",
            "links": {
                "self": "http://localhost:5000/v3/groups/9ce0ad4e58a84d7a97b92f7955d10c92"
            },
            "name": "admins"
        }
    ]
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	groupResource := &Group{
		Session: session,
	}
	groups, err := groupResource.List("default", "")
	if err != nil {
		t.Error(err)
	}
	if groups.Links["self"] != "http://localhost:5000/v3/groups" {
		t.Errorf("Expect groups.Links[self] == %q; got %q", "http://localhost:5000/v3/groups", groups.Links["self"])
	}
	if groups.Groups[0].Id != "96372bbb152f475aa37e9a76a25a029c" {
		t.Errorf("Expect groups.Groups[0].Id == %q; got %q", "96372bbb152f475aa37e9a76a25a029c", groups.Groups[0].Id)
	}
	if groups.Groups[1].Links["self"] != "http://localhost:5000/v3/groups/9ce0ad4e58a84d7a97b92f7955d10c92" {
		t.Errorf("Expect groups.Groups[1].Links[self] == %q; got %q", "http://localhost:5000/v3/groups/9ce0ad4e58a84d7a97b92f7955d10c92", groups.Groups[1].Links["self"])
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:76,代码来源:groups_test.go


示例12: TestGroupListUsers

func TestGroupListUsers(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/groups/xyz/users" {
			t.Errorf("Expected 'url' == %q; got %q", "/groups/xyz/users", r.URL.Path)
		}
		q := r.URL.Query()
		if q.Get("domain_id") != "default" {
			t.Errorf("Expected 'domain_id' == %q; got %q", "default", q.Get("domain_id"))
		}
		w.Write([]byte(`{
    "users": [
        {
            "name": "admin",
            "links": {
                "self": "http://localhost:5000/v3/users/fff603a0829d41e48bc0dd0d72ad61ce"
            },
            "domain_id": "default",
            "enabled": true,
            "email": null,
            "id": "fff603a0829d41e48bc0dd0d72ad61ce"
        }
    ],
    "links": {
        "self": "http://localhost:5000/v3/groups/9ce0ad4e58a84d7a97b92f7955d10c92/users",
        "previous": null,
        "next": null
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	groupResource := &Group{
		Session: session,
	}
	users, err := groupResource.ListUsers("xyz", "default", "", "", "true")
	if err != nil {
		t.Error(err)
	}
	if users.Links["self"] != "http://localhost:5000/v3/groups/9ce0ad4e58a84d7a97b92f7955d10c92/users" {
		t.Errorf("Expect users.Links[self] == %q; got %q", "http://localhost:5000/v3/groups/9ce0ad4e58a84d7a97b92f7955d10c92/users", users.Links["self"])
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:62,代码来源:groups_test.go


示例13: TestGroupUpdate

func TestGroupUpdate(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.PATCH {
			t.Errorf("Expected method %q; got %q", requests.PATCH, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/groups/xyz" {
			t.Errorf("Expected 'url' == %q; got %q", "/groups/xyz", r.URL.Path)
		}

		body, _ := ioutil.ReadAll(r.Body)
		defer r.Body.Close()
		tmp := `{
    "group": {
        "description": "Contract developers 2016",
        "name": "Contract developers 2016"
    }
}`
		tmpStruct := &types.GroupResponse{}
		_ = json.Unmarshal([]byte(tmp), tmpStruct)
		tmpbytes, _ := json.Marshal(tmpStruct)

		if string(body) != string(tmpbytes) {
			t.Errorf("Expected auth request body == %q; got %q", string(tmpbytes), string(body))
		}

		w.Write([]byte(`{
    "group": {
        "domain_id": "default",
        "description": "Contract developers 2016",
        "id": "c0d675eac29945ad9dfd08aa1bb75751",
        "links": {
            "self": "http://localhost:5000/v3/groups/c0d675eac29945ad9dfd08aa1bb75751"
        },
        "name": "Contract developers 2016"
    }
}`))
	}))

	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	groupResource := &Group{
		Session: session,
	}

	group, err := groupResource.Update("xyz", &types.Group{
		Description: "Contract developers 2016",
		Name:        "Contract developers 2016",
	})
	if err != nil {
		t.Error(err)
	}
	if group.Id != "c0d675eac29945ad9dfd08aa1bb75751" {
		t.Errorf("Expect group.Id == %q; got %q", "c0d675eac29945ad9dfd08aa1bb75751", group.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:72,代码来源:groups_test.go


示例14: TestDomainCreate

func TestDomainCreate(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.POST {
			t.Errorf("Expected method %q; got %q", requests.POST, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}

		body, _ := ioutil.ReadAll(r.Body)
		defer r.Body.Close()

		tmp := `{
    "domain": {
        "description": "Domain description",
        "enabled": true,
        "name": "myDomain"
    }
}`
		tmpStruct := &types.DomainResponse{}
		_ = json.Unmarshal([]byte(tmp), tmpStruct)
		tmpbytes, _ := json.Marshal(tmpStruct)
		if string(body) != string(tmpbytes) {
			t.Errorf("Expected auth request body == %q; got %q", string(tmpbytes), string(body))
		}

		w.Write([]byte(`{
    "domain": {
        "description": "Domain description",
        "enabled": true,
        "id": "161718",
        "links": {
            "self": "http://identity:35357/v3/domains/161718"
        },
        "name": "myDomain"
    }
}`))
	}))

	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	domainResource := &Domain{
		Session: session,
	}
	domain, err := domainResource.Create(&types.Domain{
		Description: "Domain description",
		Enabled:     true,
		Name:        "myDomain",
	})
	if err != nil {
		t.Error(err)
	}
	if domain.Id != "161718" {
		t.Errorf("Expect domain.Id == %q; got %q", "161718", domain.Id)
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:70,代码来源:domains_test.go


示例15: TestUserListProjects

func TestUserListProjects(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/users/xyz/projects" {
			t.Errorf("Expected 'url' == %q; got %q", "/users/xyz/projects", r.URL.Path)
		}

		w.Write([]byte(`{
    "projects": [
        {
            "description": "description of this project",
            "domain_id": "161718",
            "enabled": true,
            "id": "456788",
            "parent_id": "212223",
            "links": {
                "self": "http://identity:35357/v3/projects/456788"
            },
            "name": "a project name"
        },
        {
            "description": "description of this project",
            "domain_id": "161718",
            "enabled": true,
            "id": "456789",
            "parent_id": "212223",
            "links": {
                "self": "http://identity:35357/v3/projects/456789"
            },
            "name": "another domain"
        }
    ],
    "links": {
        "self": "http://identity:35357/v3/users/313233/projects",
        "previous": null,
        "next": null
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	userResource := &User{
		Session: session,
	}
	projects, err := userResource.ListProjects("xyz")
	if err != nil {
		t.Error(err)
	}
	if projects.Links["self"] != "http://identity:35357/v3/users/313233/projects" {
		t.Errorf("Expect projects.Links[self] == %q; got %q", "http://identity:35357/v3/users/313233/projects", projects.Links["self"])
	}
	if projects.Projects[0].Name != "a project name" {
		t.Errorf("Expect projects.Projects[0].Name == %q; got %q", "a project name", projects.Projects[0].Name)
	}
	if projects.Projects[1].Links["self"] != "http://identity:35357/v3/projects/456789" {
		t.Errorf("Expect projects.Projects[1].Links[self] == %q; got %q", "http://identity:35357/v3/projects/456789", projects.Projects[1].Links["self"])
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:77,代码来源:users_test.go


示例16: TestCredentialList

func TestCredentialList(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}

		//test query parameter
		q := r.URL.Query()
		if q.Get("user_id") != "xyz" {
			t.Errorf("Expected 'user_id' == %q; got %q", "xyz", q.Get("user_id"))
		}

		w.Write([]byte(`{
    "credentials": [
        {
            "user_id": "bb5476fd12884539b41d5a88f838d773",
            "links": {
                "self": "http://localhost:5000/v3/credentials/207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7"
            },
            "blob": "{\"access\": \"a42a27755ce6442596b049bd7dd8a563\", \"secret\": \"71faf1d40bb24c82b479b1c6fbbd9f0c\", \"trust_id\": null}",
            "project_id": "6e01855f345f4c59812999b5e459137d",
            "type": "ec2",
            "id": "207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7"
        },
        {
            "user_id": "6f556708d04b4ea6bc72d7df2296b71a",
            "links": {
                "self": "http://localhost:5000/v3/credentials/2441494e52ab6d594a34d74586075cb299489bdd1e9389e3ab06467a4f460609"
            },
            "blob": "{\"access\": \"7da79ff0aa364e1396f067e352b9b79a\", \"secret\": \"7a18d68ba8834b799d396f3ff6f1e98c\", \"trust_id\": null}",
            "project_id": "1a1d14690f3c4ec5bf5f321c5fde3c16",
            "type": "ec2",
            "id": "2441494e52ab6d594a34d74586075cb299489bdd1e9389e3ab06467a4f460609"
        }
	],
	"links": {
        "self": "http://localhost:5000/v3/credentials",
        "previous": null,
        "next": null
    }
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	credentialResource := &Credential{
		Session: session,
	}
	credentials, err := credentialResource.List("xyz")
	if err != nil {
		t.Error(err)
	}
	if credentials.Links["self"] != "http://localhost:5000/v3/credentials" {
		t.Errorf("Expect credentials.Links[self] == %q; got %q", "http://localhost:5000/v3/credentials", credentials.Links["self"])
	}
	if credentials.Credentials[0].Id != "207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7" {
		t.Errorf("Expect credentials.Credentials[0].Id == %q; got %q", "207e9b76935efc03804d3dd6ab52d22e9b22a0711e4ada4ff8b76165a07311d7", credentials.Credentials[0].Id)
	}
	if credentials.Credentials[1].Links["self"] != "http://localhost:5000/v3/credentials/2441494e52ab6d594a34d74586075cb299489bdd1e9389e3ab06467a4f460609" {
		t.Errorf("Expect credentials.Credentials[1].Links[self] == %q; got %q", "http://localhost:5000/v3/credentials/2441494e52ab6d594a34d74586075cb299489bdd1e9389e3ab06467a4f460609", credentials.Credentials[1].Links["self"])
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:78,代码来源:credentials_test.go


示例17: TestRoleList

func TestRoleList(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}

		//test query parameter
		q := r.URL.Query()
		if q.Get("name") != "test" {
			t.Errorf("Expected 'name' == %q; got %q", "test", q.Get("name"))
		}

		w.Write([]byte(`{
    "links": {
        "next": null,
        "previous": null,
        "self": "http://localhost:5000/v3/roles"
    },
    "roles": [
        {
            "id": "5318e65d75574c17bf5339d3df33a5a3",
            "links": {
                "self": "http://localhost:5000/v3/roles/5318e65d75574c17bf5339d3df33a5a3"
            },
            "name": "admin"
        },
        {
            "id": "642bcfc75c384fd181adf34d9b2df897",
            "links": {
                "self": "http://localhost:5000/v3/roles/642bcfc75c384fd181adf34d9b2df897"
            },
            "name": "anotherrole"
        }
	]
}`))
	}))
	defer ts.Close()

	auth := &client.AuthAccess{
		Access: &client.AccessInfo{
			Token: "12345",
		},
	}

	session := client.NewSession(&keystoneclient.Opts{AuthUrl: ts.URL}, auth)

	roleResource := &Role{
		Session: session,
	}
	roles, err := roleResource.List("test")
	if err != nil {
		t.Error(err)
	}
	if roles.Links["self"] != "http://localhost:5000/v3/roles" {
		t.Errorf("Expect roles.Links[self] == %q; got %q", "http://localhost:5000/v3/roles", roles.Links["self"])
	}
	if roles.Roles[0].Id != "5318e65d75574c17bf5339d3df33a5a3" {
		t.Errorf("Expect roles.Roles[0].Id == %q; got %q", "5318e65d75574c17bf5339d3df33a5a3", roles.Roles[0].Id)
	}
	if roles.Roles[1].Links["self"] != "http://localhost:5000/v3/roles/642bcfc75c384fd181adf34d9b2df897" {
		t.Errorf("Expect roles.Roles[1].Links[self] == %q; got %q", "http://localhost:5000/v3/roles/642bcfc75c384fd181adf34d9b2df897", roles.Roles[1].Links["self"])
	}
}
开发者ID:heartsg,项目名称:dasea,代码行数:72,代码来源:roles_test.go


示例18: TestRoleAssignments

func TestRoleAssignments(t *testing.T) {
	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if r.Method != requests.GET {
			t.Errorf("Expected method %q; got %q", requests.GET, r.Method)
		}
		if r.Header == nil {
			t.Errorf("Expected non-nil request Header")
		}
		if r.Header.Get("User-Agent") != "Dasea Keystone client" {
			t.Errorf("Expected 'User-Agent' == %q; got %q", "Dasea Keystone client", r.Header.Get("User-Agent"))
		}
		if r.Header.Get("X-Auth-Token") != "12345" {
			t.Errorf("Expected 'X-Auth-Token' == %q; got %q", "12345", r.Header.Get("X-Auth-Token"))
		}
		if r.URL.Path != "/role_assignments" {
			t.Errorf("Expected 'url' == %q; got %q", "/role_assignments", r.URL.Path)
		}

		q := r.URL.Query()
		if q.Get("user.id") != "xyz" {
			t.Errorf("Expected 'user.id' == %q; got %q", "xyz", q.Get("user.id"))
		}
		if q.Get("scope.project.id") != "abc" {
			t.Errorf("Expected 'scope.project.id' == %q; got %q", "abc", q.Get("scope.project.id"))
		}

		w.Write([]byte(`{
    "role_assignments": [
        {
            "links": {
                "assignment": "http://identity:35357/v3/domains/161718/users/313233/roles/123456"
            },
            "role": {
                "id": "123456"
            },
            "scope": {
                "domain": {
                    "id": "161718"
                }
            },
            "user": {
                "id": "313233"
            }
        },
        {
            " 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang blocks.Block类代码示例发布时间:2022-05-28
下一篇:
Golang ut.Run函数代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap