Created
August 9, 2012 13:35
-
-
Save hryk/3304215 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| nova dns-create-public-domain --project hogeproject hoge.com | |
| | dns_domains | CREATE TABLE `dns_domains` ( | |
| `created_at` datetime DEFAULT NULL, | |
| `updated_at` datetime DEFAULT NULL, | |
| `deleted_at` datetime DEFAULT NULL, | |
| `deleted` tinyint(1) DEFAULT NULL, | |
| `domain` varchar(512) CHARACTER SET latin1 NOT NULL, | |
| `scope` varchar(255) DEFAULT NULL, | |
| `availability_zone` varchar(255) DEFAULT NULL, | |
| `project_id` varchar(255) DEFAULT NULL, | |
| PRIMARY KEY (`domain`), | |
| KEY `project_id` (`project_id`), | |
| CONSTRAINT `dns_domains_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) | |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | |
| Cannot add or update a child row: a foreign key constraint fails | |
| (`nova`.`dns_domains`, CONSTRAINT `dns_domains_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`))') | |
| INSERT INTO dns_domains (created_at, | |
| updated_at, | |
| deleted_at, | |
| deleted, | |
| domain, | |
| scope, | |
| availability_zone, | |
| project_id) VALUES | |
| (datetime.datetime(), | |
| None, | |
| None, | |
| 0, | |
| 'hoge.com', | |
| 'public', | |
| None, | |
| 'hogeproject') | |
| novaのprojectsテーブルにプロジェクトが入ってないのが原因だった。OpenStack Dashboardで使われてるProjectはkeystoneテーブルのtenantを見ていて、普通にセットアップしたつもりだけどnova.projectsは空になってた。dns_domainsにはproject_idがprojects.idを見ている事を保証するconstraintがついているので失敗する。 | |
| そもそもnovaのprojectが何に使われているかいまいちわからない。いまいちわからなかった人もいるみたいで、MLにスレッドがたってた。 | |
| https://lists.launchpad.net/openstack/msg02966.html | |
| Keystoneはユーザが1つのテナントに紐づけられている事を仮定しているけれど、これはnovaのユーザが複数のプロジェクトに所属できることとコンフリクトしてるような気がするけどどっちが正しいようになる? | |
| https://lists.launchpad.net/openstack/msg03158.html | |
| ゴールはnovaのユースケース(ユーザが複数プロジェクトに所属できる)をサポートすることだよー。 | |
| けどこれだと"暗黙のロール"問題が起こってしまうんだよね。なんかいい方法ない? | |
| その後はえんえんTenantの話してる。結局novaのprojectが何に使われているかよくわからなかった。 | |
| https://bugs.launchpad.net/nova/+bug/922465 | |
| バグとして上がってる | |
| nova clientが"Project ID"っていってるものは結局KeystoneのTenant Nameじゃないか! | |
| nova clientはTenantNameを使ってkeystoneからtokenを受け取っている。novaのproject nameがtenant nameに対応しているのは混乱する。 | |
| 回答に上げられていたBluePrint | |
| http://wiki.openstack.org/CLIAuth | |
| これはCLI経由の認証に関する提案。まだドラフト段階。 | |
| で、結局ProjectIDってなんなの?必要なの? | |
| computeのドキュメントにはこうある。 | |
| http://docs.openstack.org/trunk/openstack-compute/admin/content/users-and-projects.html | |
| Earlier versions of OpenStack used the term "project" instead of "tenant". | |
| Because of this legacy terminology, some command-line tools use --project_id | |
| when a tenant ID is expected. | |
| これを見る限りprojectはdeprecatedな扱いのように見える。ただ、まだ残ってるって事は何か理由があって残ってるっぽい。 | |
| http://docs.openstack.org/developer/nova/runnova/managing.projects.html | |
| Projects are isolated resource containers forming the principal organizational | |
| structure within Nova. They consist of a separate vlan, volumes, instances, | |
| images, keys, and users. | |
| どうやらnova.dns_domainsがよくわからないconstraintをつけているのが悪いみたい。instancesテーブルにはuser_id, | |
| project_idというカラムがあるけど、これはkeystone.usersを参照している。ここは1つconstraintを外してinstanceテーブルのようにuser_idもproject_idもkeystoneを見るようにしたほうがよさそう。ところでnova | |
| listみたいなコマンドはどうしているのか。 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment