diff --git a/README.md b/README.md
index 3ce2e12..b077ba1 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,14 @@
-RACK(Real Application Centric Kernel) README
-=====================
+# The concept of RACK: "OpenStack Native Application"
-## RACK Project Resources
+OpenStack Native Application is the software, which uses OpenStack resource (eg. VM or VNET) directly from application. Recent popular applications are designed before the cloud computing age, so affinity with cloud is not considered. In order to make those applications work on OpenStack, tools such as Chef, Puppet and other tools are required, and it makes systems very complex in design.
-* [Wiki](https://wiki.openstack.org/wiki/RACK)
-* [Library](https://github.com/stackforge/python-rackclient)
\ No newline at end of file
+RACK provides the mechanism to create “After the Cloud” applications. Programmer can write codes that are scalable and migratable on OpenStack platform without cooperating with the external systems.
+
+Concepts of RACK are as follows:
+
+1. RACK handles VM with "functions" as a single execution binary file. “Functions” here means OS, middleware and programs that are necessary for application to function. The programs here are made in such a way as to call and operate RACK API.
+2. When this execution binary is deployed onto OpenStack, the VM will behave like a Linux process and then finish its own task.
+3. This process is based on the descriptions in the program. It does things such as forking and generating a child process, communicating between processes.
+
+Please take a look at our Wiki page to understand RACK more!
+**https://wiki.openstack.org/wiki/RACK**
diff --git a/etc/rack.conf.sample b/etc/rack.conf.sample
index 5c37d19..e647ed8 100644
--- a/etc/rack.conf.sample
+++ b/etc/rack.conf.sample
@@ -10,5 +10,6 @@
#os_password = password
#os_tenant_name = demo
#os_auth_url = http://localhost:5000/v2.0
+#os_region_name = RegionOne
#ipc_port = 8888
#shm_port = 6379
\ No newline at end of file
diff --git a/openstack-common.conf b/openstack-common.conf
index d058c86..adf5107 100644
--- a/openstack-common.conf
+++ b/openstack-common.conf
@@ -1,7 +1,6 @@
[DEFAULT]
# The list of modules to copy from oslo-incubator.git
-module=cliutils
module=config
module=context
module=db
@@ -11,37 +10,19 @@ module=excutils
module=fileutils
module=fixture
module=gettextutils
-module=imageutils
module=importutils
-module=install_venv_common
module=jsonutils
module=local
module=lockutils
module=log
module=loopingcall
-module=memorycache
-module=middleware/base
-module=middleware/request_id
-module=network_utils
-module=periodic_task
module=policy
module=processutils
-module=report
-module=report.generators
-module=report.models
-module=report.views
-module=report.views.xml
-module=report.views.json
-module=report.views.text
module=service
-module=sslutils
module=strutils
module=threadgroup
module=timeutils
-module=units
module=uuidutils
-module=versionutils
-module=xmlutils
# The base module to hold the copy of openstack.common
base=rack
\ No newline at end of file
diff --git a/rack/api/v1/processes.py b/rack/api/v1/processes.py
index 5ed9915..f06ee04 100644
--- a/rack/api/v1/processes.py
+++ b/rack/api/v1/processes.py
@@ -250,6 +250,7 @@ class Controller(wsgi.Controller):
default_args["os_password"] = cfg.CONF.os_password
default_args["os_tenant_name"] = cfg.CONF.os_tenant_name
default_args["os_auth_url"] = cfg.CONF.os_auth_url
+ default_args["os_region_name"] = cfg.CONF.os_region_name
else:
proxy_instance_id = proxy[0]["nova_instance_id"]
default_args["proxy_ip"] = self.manager.get_process_address(
diff --git a/rack/resourceoperator/openstack/__init__.py b/rack/resourceoperator/openstack/__init__.py
index c014626..9e0f74b 100644
--- a/rack/resourceoperator/openstack/__init__.py
+++ b/rack/resourceoperator/openstack/__init__.py
@@ -27,7 +27,9 @@ openstack_client_opts = [
cfg.StrOpt('os_tenant_name',
help='Valid tenant name for OpenStack'),
cfg.StrOpt('os_auth_url',
- help='The keystone endpoint')
+ help='The keystone endpoint'),
+ cfg.StrOpt('os_region_name',
+ help='Valid region name for OpenStack')
]
CONF = cfg.CONF
@@ -41,7 +43,8 @@ def get_nova_client():
"username": CONF.os_username,
"api_key": CONF.os_password,
"project_id": CONF.os_tenant_name,
- "auth_url": CONF.os_auth_url
+ "auth_url": CONF.os_auth_url,
+ "region_name": CONF.os_region_name
}
for key, value in credentials.items():
@@ -56,7 +59,8 @@ def get_neutron_client():
"username": CONF.os_username,
"password": CONF.os_password,
"tenant_name": CONF.os_tenant_name,
- "auth_url": CONF.os_auth_url
+ "auth_url": CONF.os_auth_url,
+ "region_name": CONF.os_region_name
}
for key, value in credentials.items():
diff --git a/rack/tests/api/v1/test_processes.py b/rack/tests/api/v1/test_processes.py
index 09e5892..af5433c 100644
--- a/rack/tests/api/v1/test_processes.py
+++ b/rack/tests/api/v1/test_processes.py
@@ -485,6 +485,7 @@ class ProcessesTest(test.NoDBTestCase):
self.mox.StubOutWithMock(cfg.CONF, "os_password")
self.mox.StubOutWithMock(cfg.CONF, "os_tenant_name")
self.mox.StubOutWithMock(cfg.CONF, "os_auth_url")
+ self.mox.StubOutWithMock(cfg.CONF, "os_region_name")
db.process_get_all(
IsA(context.RequestContext), GID, filters=IsA(dict))\
.AndReturn([])
@@ -509,6 +510,7 @@ class ProcessesTest(test.NoDBTestCase):
cfg.CONF.os_password = "os_password_data"
cfg.CONF.os_tenant_name = "os_tenant_name_data"
cfg.CONF.os_auth_url = "os_auth_url_data"
+ cfg.CONF.os_region_name = "os_region_name"
self.mox.ReplayAll()
process = _base_process1(GID, PID1)
@@ -528,6 +530,7 @@ class ProcessesTest(test.NoDBTestCase):
expect["proxy"]["args"].update(os_password="os_password_data")
expect["proxy"]["args"].update(os_tenant_name="os_tenant_name_data")
expect["proxy"]["args"].update(os_auth_url="os_auth_url_data")
+ expect["proxy"]["args"].update(os_region_name="os_region_name")
for key in body["proxy"]:
self.assertEqual(body["proxy"][key], expect["proxy"][key])
@@ -540,6 +543,7 @@ class ProcessesTest(test.NoDBTestCase):
self.mox.StubOutWithMock(cfg.CONF, "os_password")
self.mox.StubOutWithMock(cfg.CONF, "os_tenant_name")
self.mox.StubOutWithMock(cfg.CONF, "os_auth_url")
+ self.mox.StubOutWithMock(cfg.CONF, "os_region_name")
db.process_get_all(
IsA(context.RequestContext), GID, filters=IsA(dict))\
.AndReturn([])
@@ -564,6 +568,7 @@ class ProcessesTest(test.NoDBTestCase):
cfg.CONF.os_password = "os_password_data"
cfg.CONF.os_tenant_name = "os_tenant_name_data"
cfg.CONF.os_auth_url = "os_auth_url_data"
+ cfg.CONF.os_region_name = "os_region_name"
self.mox.ReplayAll()
process = _base_process1(GID, PID1)
@@ -584,6 +589,7 @@ class ProcessesTest(test.NoDBTestCase):
expect["proxy"]["args"].update(os_password="os_password_data")
expect["proxy"]["args"].update(os_tenant_name="os_tenant_name_data")
expect["proxy"]["args"].update(os_auth_url="os_auth_url_data")
+ expect["proxy"]["args"].update(os_region_name="os_region_name")
expect["proxy"].update(name="proxy-" + PID1)
for key in body["proxy"]:
self.assertEqual(body["proxy"][key], expect["proxy"][key])
@@ -596,6 +602,7 @@ class ProcessesTest(test.NoDBTestCase):
self.mox.StubOutWithMock(cfg.CONF, "os_password")
self.mox.StubOutWithMock(cfg.CONF, "os_tenant_name")
self.mox.StubOutWithMock(cfg.CONF, "os_auth_url")
+ self.mox.StubOutWithMock(cfg.CONF, "os_region_name")
db.process_get_all(
IsA(context.RequestContext), GID, filters=IsA(dict))\
.AndReturn([])
@@ -610,6 +617,7 @@ class ProcessesTest(test.NoDBTestCase):
cfg.CONF.os_password = "os_password_data"
cfg.CONF.os_tenant_name = "os_tenant_name_data"
cfg.CONF.os_auth_url = "os_auth_url_data"
+ cfg.CONF.os_region_name = "os_region_name"
self.mox.ReplayAll()
process = _base_process1(GID, PID1)
@@ -629,6 +637,7 @@ class ProcessesTest(test.NoDBTestCase):
self.mox.StubOutWithMock(cfg.CONF, "os_password")
self.mox.StubOutWithMock(cfg.CONF, "os_tenant_name")
self.mox.StubOutWithMock(cfg.CONF, "os_auth_url")
+ self.mox.StubOutWithMock(cfg.CONF, "os_region_name")
db.process_get_all(
IsA(context.RequestContext), GID, filters=IsA(dict))\
.AndReturn([])
@@ -643,6 +652,7 @@ class ProcessesTest(test.NoDBTestCase):
cfg.CONF.os_password = "os_password_data"
cfg.CONF.os_tenant_name = "os_tenant_name_data"
cfg.CONF.os_auth_url = "os_auth_url_data"
+ cfg.CONF.os_region_name = "os_region_name"
self.mox.ReplayAll()
process = _base_process1(GID, PID1)
@@ -662,6 +672,7 @@ class ProcessesTest(test.NoDBTestCase):
self.mox.StubOutWithMock(cfg.CONF, "os_password")
self.mox.StubOutWithMock(cfg.CONF, "os_tenant_name")
self.mox.StubOutWithMock(cfg.CONF, "os_auth_url")
+ self.mox.StubOutWithMock(cfg.CONF, "os_region_name")
db.process_get_all(
IsA(context.RequestContext), GID, filters=IsA(dict))\
.AndReturn([])
@@ -676,6 +687,7 @@ class ProcessesTest(test.NoDBTestCase):
cfg.CONF.os_password = "os_password_data"
cfg.CONF.os_tenant_name = "os_tenant_name_data"
cfg.CONF.os_auth_url = "os_auth_url_data"
+ cfg.CONF.os_region_name = "os_region_name"
self.mox.ReplayAll()
process = _base_process1(GID, PID1)
diff --git a/rack/tests/resourceoperator/openstack/test_keypairs.py b/rack/tests/resourceoperator/openstack/test_keypairs.py
index c9fbdbd..89042c0 100644
--- a/rack/tests/resourceoperator/openstack/test_keypairs.py
+++ b/rack/tests/resourceoperator/openstack/test_keypairs.py
@@ -30,7 +30,8 @@ CREDENTIALS = {
"os_username": "fake",
"os_password": "fake",
"os_tenant_name": "fake",
- "os_auth_url": "fake"
+ "os_auth_url": "fake",
+ "os_region_name": "fake"
}
cfg.set_defaults(os_client.openstack_client_opts, **CREDENTIALS)
diff --git a/rack/tests/resourceoperator/openstack/test_networks.py b/rack/tests/resourceoperator/openstack/test_networks.py
index 87a0b86..599128d 100644
--- a/rack/tests/resourceoperator/openstack/test_networks.py
+++ b/rack/tests/resourceoperator/openstack/test_networks.py
@@ -25,7 +25,8 @@ CREDENTIALS = {
"os_username": "fake",
"os_password": "fake",
"os_tenant_name": "fake",
- "os_auth_url": "fake"
+ "os_auth_url": "fake",
+ "os_region_name": "fake"
}
cfg.set_defaults(os_client.openstack_client_opts, **CREDENTIALS)
diff --git a/rack/tests/resourceoperator/openstack/test_processes.py b/rack/tests/resourceoperator/openstack/test_processes.py
index 76993a1..d9507d3 100644
--- a/rack/tests/resourceoperator/openstack/test_processes.py
+++ b/rack/tests/resourceoperator/openstack/test_processes.py
@@ -33,6 +33,7 @@ class ProcessesTest(test.NoDBTestCase):
cfg.CONF.os_password = "os_password"
cfg.CONF.os_tenant_name = "os_tenant_name"
cfg.CONF.os_auth_url = "os_auth_url"
+ cfg.CONF.os_region_name = "os_region_name"
self.process_client = processes.ProcessesAPI()
self.nova = os_client.get_nova_client()
diff --git a/rack/tests/resourceoperator/openstack/test_securitygroups.py b/rack/tests/resourceoperator/openstack/test_securitygroups.py
index 5c2fef7..e3e42d6 100644
--- a/rack/tests/resourceoperator/openstack/test_securitygroups.py
+++ b/rack/tests/resourceoperator/openstack/test_securitygroups.py
@@ -27,7 +27,8 @@ CREDENTIALS = {
"os_username": "fake",
"os_password": "fake",
"os_tenant_name": "fake",
- "os_auth_url": "fake"
+ "os_auth_url": "fake",
+ "os_region_name": "fake"
}
cfg.set_defaults(os_client.openstack_client_opts, **CREDENTIALS)
diff --git a/tools/sample-apps/montecarlo/README.md b/tools/sample-apps/montecarlo/README.md
index eaf72f5..502ed78 100644
--- a/tools/sample-apps/montecarlo/README.md
+++ b/tools/sample-apps/montecarlo/README.md
@@ -89,9 +89,10 @@ Error: Installing the required packages
### 2. Initialize the process group
This section describes how to set up an environment for this application. `rack-api` needs to be run before proceeding this step.
+For details of installation of `rack-api`, please refer to [**here**](https://github.com/stackforge/rack/tree/master/tools/setup).
First, we will create a configuration file for process group initialization on RACK CLI installed machine.
-For details of installation of RACK CLI, please refer to [**here**](https://github.com/stackforgehon-rackclient).
+For details of installation of RACK CLI, please refer to [**here**](https://github.com/stackforge/python-rackclient).
Please fill empty section with your environment parameters.
diff --git a/tools/sample-apps/montecarlo/README_ja.md b/tools/sample-apps/montecarlo/README_ja.md
index 2324f50..e694339 100644
--- a/tools/sample-apps/montecarlo/README_ja.md
+++ b/tools/sample-apps/montecarlo/README_ja.md
@@ -93,7 +93,7 @@ Error: Installing the required packages
本アプリケーションを動作させるための環境を用意します。
事前に`rack-api`が起動している必要があります。
-`rack-api`の準備については[**こちら**](https://github.com/stackforge/rack/tree/master/tools/setup/)をご覧ください。
+`rack-api`の準備については[**こちら**](https://github.com/stackforge/rack/blob/master/tools/setup/README_ja.md)をご覧ください。
RACK CLIを導入したマシン上で、グループ初期化用の設定ファイルを作成します。
RACK CLIの導入方法については[**こちら**](https://github.com/stackforge/python-rackclient)をご覧ください。
diff --git a/tools/sample-apps/shell-like/README.md b/tools/sample-apps/shell-like/README.md
index 175f5b1..cb54c37 100644
--- a/tools/sample-apps/shell-like/README.md
+++ b/tools/sample-apps/shell-like/README.md
@@ -87,11 +87,11 @@ Error: Installing the required packages
### 2. Initialize the process group
-This section explains how to set up an environment for this application. `rack-api` needs to be run before proceeding this step.
-For details of installation of RACK CLI, please refer to [**here**](https://github.com/stackforgehon-rackclient).
+This section describes how to set up an environment for this application. `rack-api` needs to be run before proceeding this step.
+For details of installation of `rack-api`, please refer to [**here**](https://github.com/stackforge/rack/tree/master/tools/setup).
First, we will create a configuration file for process group initialization on RACK CLI installed machine.
-For details of installation of RACK CLI, please refer to [**here**](https://github.com/stackforgehon-rackclient).
+For details of installation of RACK CLI, please refer to [**here**](https://github.com/stackforge/python-rackclient).
Please fill empty section with your environment parameters.
diff --git a/tools/sample-apps/shell-like/README_ja.md b/tools/sample-apps/shell-like/README_ja.md
index c4687f4..9badd5f 100644
--- a/tools/sample-apps/shell-like/README_ja.md
+++ b/tools/sample-apps/shell-like/README_ja.md
@@ -95,7 +95,7 @@ Error: Installing the required packages
本アプリケーションを動作させるための環境を用意します。
事前に`rack-api`が起動している必要があります。
-`rack-api`の準備については[**こちら**](https://github.com/stackforge/rack/tree/master/tools/setup/)をご覧ください。
+`rack-api`の準備については[**こちら**](https://github.com/stackforge/rack/blob/master/tools/setup/README_ja.md)をご覧ください。
RACK CLIを導入したマシン上で、グループ初期化用の設定ファイルを作成します。
RACK CLIの導入方法については[**こちら**](https://github.com/stackforge/python-rackclient)をご覧ください。
diff --git a/tools/setup/README.md b/tools/setup/README.md
index 15f2695..281ceb3 100644
--- a/tools/setup/README.md
+++ b/tools/setup/README.md
@@ -99,14 +99,15 @@ Please note that OpenStack authentication info fed as meta-data will be written
```
-# nova boot ¥
- --flavor { any flavor with more than 2GB RAM } ¥
- --image { snapshot created at step #3.1 } ¥
- --nic net-id={ virtual network created at step #3.2 } ¥
- --meta os_username={Keystone username} ¥
- --meta os_password={Keystone password} ¥
- --meta os_tenant_name={Keystone tenant name} ¥
- --meta os_auth_url={Keystone API URL} ¥
+# nova boot \
+ --flavor { any flavor with more than 2GB RAM } \
+ --image { snapshot created at step #3.1 } \
+ --nic net-id={ virtual network created at step #3.2 } \
+ --meta os_username={Keystone username} \
+ --meta os_password={Keystone password} \
+ --meta os_tenant_name={Keystone tenant name} \
+ --meta os_auth_url={Keystone API URL} \
+ --meta os_region_name={region name} \
rack-api
```
@@ -119,7 +120,6 @@ $ rack group-list
+-----+------+-------------+--------+
| gid | name | description | status |
+-----+------+-------------+--------+
-| | | | |
+-----+------+-------------+--------+
```
@@ -127,4 +127,4 @@ $ rack group-list
## Test RACK with devstack
-**to be continued**
\ No newline at end of file
+**to be continued**
diff --git a/tools/setup/README_ja.md b/tools/setup/README_ja.md
index bef098d..05c98af 100644
--- a/tools/setup/README_ja.md
+++ b/tools/setup/README_ja.md
@@ -108,6 +108,7 @@ Nova CLIを利用し、以下のコマンドを実行してください。
--meta os_password={Keystone認証用のパスワード} \
--meta os_tenant_name={Keystone認証用のテナント名} \
--meta os_auth_url={Keystone APIのURL} \
+ --meta os_region_name={リージョン名}
rack-api
```
@@ -121,7 +122,6 @@ $ rack group-list
+-----+------+-------------+--------+
| gid | name | description | status |
+-----+------+-------------+--------+
-| | | | |
+-----+------+-------------+--------+
```
@@ -129,4 +129,4 @@ $ rack group-list
## devstackを使ってRACKを試す
-**準備中**
\ No newline at end of file
+**準備中**
diff --git a/tools/setup/init.sh b/tools/setup/init.sh
index 2a699b4..fcd326b 100755
--- a/tools/setup/init.sh
+++ b/tools/setup/init.sh
@@ -11,6 +11,7 @@ OS_USERNAME=$(echo $META | jq -r '.os_username')
OS_PASSWORD=$(echo $META | jq -r '.os_password')
OS_TENANT_NAME=$(echo $META | jq -r '.os_tenant_name')
OS_AUTH_URL=$(echo $META | jq -r '.os_auth_url')
+OS_REGION_NAME=$(echo $META | jq -r '.os_region_name')
if [ "$OS_USERNAME" == "null" ] || [ "$OS_PASSWORD" == "null" ] ||\
[ "$OS_TENANT_NAME" == "null" ] || [ "$OS_AUTH_URL" == "null" ]; then
echo "Error: OpenStack credentials are required."
@@ -21,6 +22,7 @@ os_username = $OS_USERNAME
os_password = $OS_PASSWORD
os_tenant_name = $OS_TENANT_NAME
os_auth_url = $OS_AUTH_URL
+os_region_name = $OS_REGION_NAME
EOF