{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/comments/68798848","id":68798848,"diff_hunk":"@@ -0,0 +1,62 @@\n+# Copyright 2016 PerfKitBenchmarker Authors. All rights reserved.\n+#\n+# Licensed under the Apache License, Version 2.0 (the \"License\");\n+# you may not use this file except in compliance with the License.\n+# You may obtain a copy of the License at\n+#\n+#   http://www.apache.org/licenses/LICENSE-2.0\n+#\n+# Unless required by applicable law or agreed to in writing, software\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+# See the License for the specific language governing permissions and\n+# limitations under the License.\n+\n+import os\n+\n+from perfkitbenchmarker import flags\n+\n+\n+# Locations\n+US_LAS = 'us/las'\n+DE_FKB = 'de/fkb'\n+DE_FRA = 'de/fra'\n+\n+# Zones\n+ZONE_1 = 'ZONE_1'\n+ZONE_2 = 'ZONE_2'\n+\n+flags.DEFINE_string('profitbricks_config',\n+                    os.getenv('PROFITBRICKS_CONFIG',\n+                              '~/.config/profitbricks-auth.cfg'),\n+                    ('Path to config file containing your email and password. '\n+                     'Can also be set via $PROFITBRICKS_CONFIG environment '\n+                     \"variable.\\n(File format: email:password)\"))\n+\n+flags.DEFINE_enum('location',","path":"perfkitbenchmarker/providers/profitbricks/flags.py","position":36,"original_position":36,"commit_id":"e78e51339c028ecb0e463cf84318614c8836c6ba","original_commit_id":"e611b3b31cae302c29f5539b054e56f10bb7f4fb","user":{"login":"ehankland","id":8193699,"avatar_url":"https://avatars.githubusercontent.com/u/8193699?v=3","gravatar_id":"","url":"https://api.github.com/users/ehankland","html_url":"https://github.com/ehankland","followers_url":"https://api.github.com/users/ehankland/followers","following_url":"https://api.github.com/users/ehankland/following{/other_user}","gists_url":"https://api.github.com/users/ehankland/gists{/gist_id}","starred_url":"https://api.github.com/users/ehankland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ehankland/subscriptions","organizations_url":"https://api.github.com/users/ehankland/orgs","repos_url":"https://api.github.com/users/ehankland/repos","events_url":"https://api.github.com/users/ehankland/events{/privacy}","received_events_url":"https://api.github.com/users/ehankland/received_events","type":"User","site_admin":false},"body":"It is expected - \"zones\" is the flag name because it can take a list of zones - it's pretty easy to mess up if you use it this way though, so I usually recommend that users stick to passing it a single zone or using configs if they need to run with more than one zone. It used to be the case that gflags would accept incomplete flag names as long as they could be unambiguously resolved to known flag names (so using zone instead of zones would work). This might still be the case if you set an option somewhere - I'm not sure.\r\n \r\nIf profitbricks users are used to the two parameter system, then we should probably keep it that way. I'd recommend defining a  ProfitBricksVmSpec so that users can use configs to specify the location (and ram+cores). This would let users do things like running benchmarks with different machine types for servers and clients.","created_at":"2016-06-28T17:04:18Z","updated_at":"2016-06-28T17:04:18Z","html_url":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/1005#discussion_r68798848","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/comments/68798848"},"html":{"href":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/1005#discussion_r68798848"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005","id":72799556,"html_url":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/1005","diff_url":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/1005.diff","patch_url":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/1005.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/issues/1005","number":1005,"state":"open","locked":false,"title":"Added code for ProfitBricks provider.","user":{"login":"tjb1019","id":8909680,"avatar_url":"https://avatars.githubusercontent.com/u/8909680?v=3","gravatar_id":"","url":"https://api.github.com/users/tjb1019","html_url":"https://github.com/tjb1019","followers_url":"https://api.github.com/users/tjb1019/followers","following_url":"https://api.github.com/users/tjb1019/following{/other_user}","gists_url":"https://api.github.com/users/tjb1019/gists{/gist_id}","starred_url":"https://api.github.com/users/tjb1019/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tjb1019/subscriptions","organizations_url":"https://api.github.com/users/tjb1019/orgs","repos_url":"https://api.github.com/users/tjb1019/repos","events_url":"https://api.github.com/users/tjb1019/events{/privacy}","received_events_url":"https://api.github.com/users/tjb1019/received_events","type":"User","site_admin":false},"body":"Add ProfitBricks cloud support.\r\nAdd initial support for ProfitBricks as a cloud provider.\r\n\r\nThis uses the `Requests` module to access the ProfitBricks REST API. You must set\r\n up authentication before use, see README.md for instructions.\r\n\r\nUsage example:\r\n\r\n```\r\n$ ./pkb.py --cloud=ProfitBricks --machine_type=Small --location=de/fkb --benchmarks=iperf\r\n```","created_at":"2016-06-07T00:31:12Z","updated_at":"2016-06-28T17:04:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fbc5ae6f610edd14a0cd11bc85d958f2e79c7105","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/issues/1005/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/statuses/e78e51339c028ecb0e463cf84318614c8836c6ba","head":{"label":"StackPointCloud:pb-deploy","ref":"pb-deploy","sha":"e78e51339c028ecb0e463cf84318614c8836c6ba","user":{"login":"StackPointCloud","id":7716957,"avatar_url":"https://avatars.githubusercontent.com/u/7716957?v=3","gravatar_id":"","url":"https://api.github.com/users/StackPointCloud","html_url":"https://github.com/StackPointCloud","followers_url":"https://api.github.com/users/StackPointCloud/followers","following_url":"https://api.github.com/users/StackPointCloud/following{/other_user}","gists_url":"https://api.github.com/users/StackPointCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/StackPointCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StackPointCloud/subscriptions","organizations_url":"https://api.github.com/users/StackPointCloud/orgs","repos_url":"https://api.github.com/users/StackPointCloud/repos","events_url":"https://api.github.com/users/StackPointCloud/events{/privacy}","received_events_url":"https://api.github.com/users/StackPointCloud/received_events","type":"Organization","site_admin":false},"repo":{"id":58155016,"name":"PerfKitBenchmarker","full_name":"StackPointCloud/PerfKitBenchmarker","owner":{"login":"StackPointCloud","id":7716957,"avatar_url":"https://avatars.githubusercontent.com/u/7716957?v=3","gravatar_id":"","url":"https://api.github.com/users/StackPointCloud","html_url":"https://github.com/StackPointCloud","followers_url":"https://api.github.com/users/StackPointCloud/followers","following_url":"https://api.github.com/users/StackPointCloud/following{/other_user}","gists_url":"https://api.github.com/users/StackPointCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/StackPointCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StackPointCloud/subscriptions","organizations_url":"https://api.github.com/users/StackPointCloud/orgs","repos_url":"https://api.github.com/users/StackPointCloud/repos","events_url":"https://api.github.com/users/StackPointCloud/events{/privacy}","received_events_url":"https://api.github.com/users/StackPointCloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/StackPointCloud/PerfKitBenchmarker","description":"Perfkit Benchmarker contains set of benchmarks to measure and compare cloud offerings. The benchmarks use defaults to reflect what most users will see. PerfKit Benchmarker is licensed under the Apache 2 license terms. Please make sure to read, understand and agree to the terms of the LICENSE and CONTRIBUTING files before proceeding.","fork":true,"url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker","forks_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/forks","keys_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/teams","hooks_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/hooks","issue_events_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/issues/events{/number}","events_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/events","assignees_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/assignees{/user}","branches_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/branches{/branch}","tags_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/tags","blobs_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/git/refs{/sha}","trees_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/statuses/{sha}","languages_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/languages","stargazers_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/stargazers","contributors_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/contributors","subscribers_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/subscribers","subscription_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/subscription","commits_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/commits{/sha}","git_commits_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/git/commits{/sha}","comments_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/comments{/number}","issue_comment_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/issues/comments{/number}","contents_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/contents/{+path}","compare_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/merges","archive_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/downloads","issues_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/issues{/number}","pulls_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/pulls{/number}","milestones_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/milestones{/number}","notifications_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/labels{/name}","releases_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/releases{/id}","deployments_url":"https://api.github.com/repos/StackPointCloud/PerfKitBenchmarker/deployments","created_at":"2016-05-05T19:22:26Z","updated_at":"2016-05-26T19:34:39Z","pushed_at":"2016-06-28T00:02:39Z","git_url":"git://github.com/StackPointCloud/PerfKitBenchmarker.git","ssh_url":"git@github.com:StackPointCloud/PerfKitBenchmarker.git","clone_url":"https://github.com/StackPointCloud/PerfKitBenchmarker.git","svn_url":"https://github.com/StackPointCloud/PerfKitBenchmarker","homepage":"http://googlecloudplatform.github.io/PerfKitBenchmarker/","size":7184,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"254ede1395c09482ae1d2c22fc4e92c0593d225a","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":21950910,"name":"PerfKitBenchmarker","full_name":"GoogleCloudPlatform/PerfKitBenchmarker","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker","description":"Perfkit Benchmarker contains set of benchmarks to measure and compare cloud offerings. The benchmarks use defaults to reflect what most users will see. PerfKit Benchmarker is licensed under the Apache 2 license terms. Please make sure to read, understand and agree to the terms of the LICENSE and CONTRIBUTING files before proceeding.","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/deployments","created_at":"2014-07-17T17:23:26Z","updated_at":"2016-06-25T11:08:37Z","pushed_at":"2016-06-28T00:02:39Z","git_url":"git://github.com/GoogleCloudPlatform/PerfKitBenchmarker.git","ssh_url":"git@github.com:GoogleCloudPlatform/PerfKitBenchmarker.git","clone_url":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker.git","svn_url":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker","homepage":"","size":85883,"stargazers_count":650,"watchers_count":650,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":148,"mirror_url":null,"open_issues_count":133,"forks":148,"open_issues":133,"watchers":650,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005"},"html":{"href":"https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/1005"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/issues/1005"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/issues/1005/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/pulls/1005/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/PerfKitBenchmarker/statuses/e78e51339c028ecb0e463cf84318614c8836c6ba"}}}}
{"actor":{"display_login":"ehankland"}}