Swift/サーバの起動とテスト
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
開始行:
*Swift/サーバの起動とテスト [#a8cc6ac8]
[[インストール>Swift/インストール方法]]、[[設定ファイルの...
*サーバの起動 [#a6ef2a90]
スクリプトを使用して、各種サーバを起動させます。~
まずはRingを構築します。
# remakerings
テストを行ないます。~
# cd ~/swift/trunk; ./.unittests
...........................................................
========================================================...
FAIL: test_whataremyips (test.unit.common.test_utils.Tes...
--------------------------------------------------------...
Traceback (most recent call last):
File "/home/nanodayo/swift/trunk/test/unit/common/test...
self.assert_(len(myips) > 1)
AssertionError
Name Stmts Exec Cover Missing
----------------------------------------------------------
swift 0 0 100%
swift.account 0 0 100%
(中略)
----------------------------------------------------------
TOTAL 5414 3969 73%
--------------------------------------------------------...
Ran 371 tests in 37.550s
FAILED (failures=1)
特にエラーがなければサーバを起動します。~
こちらの環境では上記のようにAssertionErrorが出て、FAILED...
起動等は問題なく行えます。
# startmain
rootユーザ以外だと、"Unable to increase file descriptor l...
# startrest
updaterなども同様に起動させます。
*アカウントの作成 [#r4612128]
テスト用のswiftのアカウントを作成します。~
devauthの値は、auth-serverに設定されているものにします。~
※-aを付けて作成しないと、後の操作ができないようです。
# swift-auth-add-user -K devauth -a test tester testing
*curlでのテスト [#yebe07c8]
アカウント作成後、X-Storage-UrlとX-Auth-Tokenを取得します。
# curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage...
* About to connect() to 127.0.0.1 port 11000 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 11000 (#0)
> GET /v1.0 HTTP/1.1
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:11000
> Accept: */*
> X-Storage-User: test:tester
> X-Storage-Pass: testing
>
< HTTP/1.1 204 No Content
< X-Storage-Url: http://127.0.0.1:9000/v1/ef7a92d3-a959-...
< X-Storage-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
< X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
< Content-Length: 0
< Date: Wed, 01 Sep 2010 00:07:13 GMT
<
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
出力結果から、X-Storage-UrlとX-Auth-Tokenを取り出し、その...
//X-Storage-Urlはポート番号9000番という結果が返ってきます...
//プロクシサーバのポート(8080)を指定すると想定する動作を...
//※現在のバージョンでは治っているようです。
以下のようにしてHTTPのGETメソッドでテストを行ないます。
# curl -v -H 'X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b HTTP/1.1
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 204 No Content
< X-Container-Object-Count: 0
< X-Container-Bytes-Used: 0
< Content-Length: 0
< Date: Wed, 01 Sep 2010 00:11:51 GMT
<
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
この時点ではまだ何もオブジェクトがないため、No Contentと...
他にもPUTメソッドでディレクトリの作成やファイルのアップロ...
ディレクトリの作成は、以下のように、-XオプションでPUTメソ...
# curl -X PUT -v -H 'X-Auth-Token: tkc3f4640b-68fa-4ffd-...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> PUT /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa HTTP...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 201 Created
< Content-Length: 18
< Content-Type: text/plain; charset=UTF-8
< Date: Wed, 01 Sep 2010 00:17:51 GMT
<
201 Created
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
201 Createdがでれば成功です。~
既にディレクトリがある場合は202 Acceptedと出るようです。
ファイルのアップロードは以下のようにします。~
# curl -X PUT -T test -v -H 'X-Auth-Token: tkc3f4640b-68...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> PUT /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa/test...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
> Content-Length: 17
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
< HTTP/1.1 201 Created
< Content-Length: 118
< Content-Type: text/plain; charset=UTF-8
< Etag: 7276c6ddf848dc69460b7873bd6ddb77
< Last-Modified: Wed, 01 Sep 2010 00:22:20 GMT
< Date: Wed, 01 Sep 2010 00:22:20 GMT
<
<html>
<head>
<title>201 Created</title>
</head>
<body>
<h1>201 Created</h1>
<br /><br />
</body>
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
アップロードしたファイルは、GETメソッドで確認できます。~
hogehogeの部分に、ファイルの内容が表示されます。
# curl -v -H 'X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-2...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa/test...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 200 OK
< Last-Modified: Wed, 01 Sep 2010 00:22:20 GMT
< Etag: 7276c6ddf848dc69460b7873bd6ddb77
< Content-Length: 17
< Content-Type: application/octet-stream
< Date: Wed, 01 Sep 2010 00:31:55 GMT
<
hogehoge
hogege
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
DELETEメソッドで、削除も行うことができます。~
ファイル・ディレクトリどちらも削除可能ですが、ディレクト...
# curl -X DELETE -v -H 'X-Auth-Token: tkc3f4640b-68fa-4...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> DELETE /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa/t...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 204 No Content
< Content-Length: 0
< Content-Type: text/plain; charset=UTF-8
< Date: Fri, 08 Oct 2010 02:24:01 GMT
<
* Connection #0 to host 192.50.109.158 left intact
* Closing connection #0
stという、Swiftに含まれているコマンドでもテストを行ないま...
# st -A http://127.0.0.1:11000/v1.0 -U test:tester -K te...
Account: AUTH_dcff3fa2cf494e1e8d211b791b461e4f
Containers: 1
Objects: 1
Bytes: 0
アカウントの、利用状況が確認できます。
*スクリプトでのテスト [#l5bbaf07]
上で説明した、curlでの操作を行うスクリプトを作成してあり...
-swift_create_token
#!/bin/bash
curl -k -v -H "X-Storage-User: $1:$2" -H "X-Storage-Pass...
grep X-Auth-Token token_tmp | awk -F ": " '{print $2}' >...
grep X-Storage-Url token_tmp | awk -F ": " '{print $2}' ...
実行は以下のようにします。~
カレントディレクトリにファイルを作り、X-Storage-UrlとX-Au...
# swift_create_token test tester testing 127.0.0.1:11000
-swift_get
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -v -H "X-Auth-Token: $TOKEN" $URL/$1
swift_create_tokenで作成したファイルからTokenとURLを読み...
引数にはURLを指定することができて、directory/fileなどと指...
省略すれば一番上の階層で、リストを見ることが出来ます。
-swift_put
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -k -v -X PUT -H "X-Auth-Token: $TOKEN" $URL/$1
以下のように実行し、引数で指定した名前のディレクトリを作...
# swift_put directory
-swift_upload
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -k -v -T $2 -X PUT -H "X-Auth-Token: $TOKEN" $URL/$1/
以下のように実行し、1つ目の引数で指定したディレクトリに、...
# swift_upload directory file
-swift_delete
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -k -v -X DELETE -H "X-Auth-Token: $TOKEN" $URL/$1
ファイル・ディレクトリの削除を行ないます。~
削除したいファイル・ディレクトリを引数で渡して使用します。
*リンク [#t87a358e]
[[Swift All In One>http://swift.openstack.org/development...
終了行:
*Swift/サーバの起動とテスト [#a8cc6ac8]
[[インストール>Swift/インストール方法]]、[[設定ファイルの...
*サーバの起動 [#a6ef2a90]
スクリプトを使用して、各種サーバを起動させます。~
まずはRingを構築します。
# remakerings
テストを行ないます。~
# cd ~/swift/trunk; ./.unittests
...........................................................
========================================================...
FAIL: test_whataremyips (test.unit.common.test_utils.Tes...
--------------------------------------------------------...
Traceback (most recent call last):
File "/home/nanodayo/swift/trunk/test/unit/common/test...
self.assert_(len(myips) > 1)
AssertionError
Name Stmts Exec Cover Missing
----------------------------------------------------------
swift 0 0 100%
swift.account 0 0 100%
(中略)
----------------------------------------------------------
TOTAL 5414 3969 73%
--------------------------------------------------------...
Ran 371 tests in 37.550s
FAILED (failures=1)
特にエラーがなければサーバを起動します。~
こちらの環境では上記のようにAssertionErrorが出て、FAILED...
起動等は問題なく行えます。
# startmain
rootユーザ以外だと、"Unable to increase file descriptor l...
# startrest
updaterなども同様に起動させます。
*アカウントの作成 [#r4612128]
テスト用のswiftのアカウントを作成します。~
devauthの値は、auth-serverに設定されているものにします。~
※-aを付けて作成しないと、後の操作ができないようです。
# swift-auth-add-user -K devauth -a test tester testing
*curlでのテスト [#yebe07c8]
アカウント作成後、X-Storage-UrlとX-Auth-Tokenを取得します。
# curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage...
* About to connect() to 127.0.0.1 port 11000 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 11000 (#0)
> GET /v1.0 HTTP/1.1
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:11000
> Accept: */*
> X-Storage-User: test:tester
> X-Storage-Pass: testing
>
< HTTP/1.1 204 No Content
< X-Storage-Url: http://127.0.0.1:9000/v1/ef7a92d3-a959-...
< X-Storage-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
< X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
< Content-Length: 0
< Date: Wed, 01 Sep 2010 00:07:13 GMT
<
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
出力結果から、X-Storage-UrlとX-Auth-Tokenを取り出し、その...
//X-Storage-Urlはポート番号9000番という結果が返ってきます...
//プロクシサーバのポート(8080)を指定すると想定する動作を...
//※現在のバージョンでは治っているようです。
以下のようにしてHTTPのGETメソッドでテストを行ないます。
# curl -v -H 'X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b HTTP/1.1
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 204 No Content
< X-Container-Object-Count: 0
< X-Container-Bytes-Used: 0
< Content-Length: 0
< Date: Wed, 01 Sep 2010 00:11:51 GMT
<
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
この時点ではまだ何もオブジェクトがないため、No Contentと...
他にもPUTメソッドでディレクトリの作成やファイルのアップロ...
ディレクトリの作成は、以下のように、-XオプションでPUTメソ...
# curl -X PUT -v -H 'X-Auth-Token: tkc3f4640b-68fa-4ffd-...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> PUT /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa HTTP...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 201 Created
< Content-Length: 18
< Content-Type: text/plain; charset=UTF-8
< Date: Wed, 01 Sep 2010 00:17:51 GMT
<
201 Created
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
201 Createdがでれば成功です。~
既にディレクトリがある場合は202 Acceptedと出るようです。
ファイルのアップロードは以下のようにします。~
# curl -X PUT -T test -v -H 'X-Auth-Token: tkc3f4640b-68...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> PUT /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa/test...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
> Content-Length: 17
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
< HTTP/1.1 201 Created
< Content-Length: 118
< Content-Type: text/plain; charset=UTF-8
< Etag: 7276c6ddf848dc69460b7873bd6ddb77
< Last-Modified: Wed, 01 Sep 2010 00:22:20 GMT
< Date: Wed, 01 Sep 2010 00:22:20 GMT
<
<html>
<head>
<title>201 Created</title>
</head>
<body>
<h1>201 Created</h1>
<br /><br />
</body>
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
アップロードしたファイルは、GETメソッドで確認できます。~
hogehogeの部分に、ファイルの内容が表示されます。
# curl -v -H 'X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-2...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa/test...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 200 OK
< Last-Modified: Wed, 01 Sep 2010 00:22:20 GMT
< Etag: 7276c6ddf848dc69460b7873bd6ddb77
< Content-Length: 17
< Content-Type: application/octet-stream
< Date: Wed, 01 Sep 2010 00:31:55 GMT
<
hogehoge
hogege
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
DELETEメソッドで、削除も行うことができます。~
ファイル・ディレクトリどちらも削除可能ですが、ディレクト...
# curl -X DELETE -v -H 'X-Auth-Token: tkc3f4640b-68fa-4...
* About to connect() to 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> DELETE /v1/ef7a92d3-a959-4dcd-9ab1-82028fd67d6b/aaaa/t...
> User-Agent: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7....
> Host: 127.0.0.1:8080
> Accept: */*
> X-Auth-Token: tkc3f4640b-68fa-4ffd-bb09-29d80ee64ab4
>
< HTTP/1.1 204 No Content
< Content-Length: 0
< Content-Type: text/plain; charset=UTF-8
< Date: Fri, 08 Oct 2010 02:24:01 GMT
<
* Connection #0 to host 192.50.109.158 left intact
* Closing connection #0
stという、Swiftに含まれているコマンドでもテストを行ないま...
# st -A http://127.0.0.1:11000/v1.0 -U test:tester -K te...
Account: AUTH_dcff3fa2cf494e1e8d211b791b461e4f
Containers: 1
Objects: 1
Bytes: 0
アカウントの、利用状況が確認できます。
*スクリプトでのテスト [#l5bbaf07]
上で説明した、curlでの操作を行うスクリプトを作成してあり...
-swift_create_token
#!/bin/bash
curl -k -v -H "X-Storage-User: $1:$2" -H "X-Storage-Pass...
grep X-Auth-Token token_tmp | awk -F ": " '{print $2}' >...
grep X-Storage-Url token_tmp | awk -F ": " '{print $2}' ...
実行は以下のようにします。~
カレントディレクトリにファイルを作り、X-Storage-UrlとX-Au...
# swift_create_token test tester testing 127.0.0.1:11000
-swift_get
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -v -H "X-Auth-Token: $TOKEN" $URL/$1
swift_create_tokenで作成したファイルからTokenとURLを読み...
引数にはURLを指定することができて、directory/fileなどと指...
省略すれば一番上の階層で、リストを見ることが出来ます。
-swift_put
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -k -v -X PUT -H "X-Auth-Token: $TOKEN" $URL/$1
以下のように実行し、引数で指定した名前のディレクトリを作...
# swift_put directory
-swift_upload
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -k -v -T $2 -X PUT -H "X-Auth-Token: $TOKEN" $URL/$1/
以下のように実行し、1つ目の引数で指定したディレクトリに、...
# swift_upload directory file
-swift_delete
#!/bin/bash
TOKEN=`sed -e 's/\r//' ~/.swift/token`
URL=`sed -e 's/\r//' ~/.swift/url`
curl -k -v -X DELETE -H "X-Auth-Token: $TOKEN" $URL/$1
ファイル・ディレクトリの削除を行ないます。~
削除したいファイル・ディレクトリを引数で渡して使用します。
*リンク [#t87a358e]
[[Swift All In One>http://swift.openstack.org/development...
ページ名: