{"action":"opened","number":84,"pull_request":{"url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/84","id":33002867,"html_url":"https://github.com/robotics-in-concert/rocon_tools/pull/84","diff_url":"https://github.com/robotics-in-concert/rocon_tools/pull/84.diff","patch_url":"https://github.com/robotics-in-concert/rocon_tools/pull/84.patch","issue_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/issues/84","number":84,"state":"open","locked":false,"title":"Don't fail on wifi-if check for different systems","user":{"login":"rethink-rlinsalata","id":3229231,"avatar_url":"https://avatars.githubusercontent.com/u/3229231?v=3","gravatar_id":"","url":"https://api.github.com/users/rethink-rlinsalata","html_url":"https://github.com/rethink-rlinsalata","followers_url":"https://api.github.com/users/rethink-rlinsalata/followers","following_url":"https://api.github.com/users/rethink-rlinsalata/following{/other_user}","gists_url":"https://api.github.com/users/rethink-rlinsalata/gists{/gist_id}","starred_url":"https://api.github.com/users/rethink-rlinsalata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rethink-rlinsalata/subscriptions","organizations_url":"https://api.github.com/users/rethink-rlinsalata/orgs","repos_url":"https://api.github.com/users/rethink-rlinsalata/repos","events_url":"https://api.github.com/users/rethink-rlinsalata/events{/privacy}","received_events_url":"https://api.github.com/users/rethink-rlinsalata/received_events","type":"User","site_admin":false},"body":"In wifi part of detection of network interfaces: Check if /proc/net/wireless exists before trying to read it, instead of failing on OS's / systems that don't have wifi and/or don't use that file.\r\n\r\n----\r\n\r\n`$ roslaunch rocon_gateway gateway.launch` was previously throwing an error for me when I tried to setup a minimal system and launch on my machine.\r\n\r\nIt is a Gentoo (3.14.14-gentoo) 64-bit system, running ROS Indigo, without any wireless network interfaces, but with two wired interfaces (one connected to the internet) -- (it's actually a Baxter Robot).  I don't really know what aspect of the system spec means it doesn't have the `/proc/net/wireless` file, but it doesn't.  So the launch would throw the following error:\r\n\r\n```\r\nrlinsalata@p26 ~/ws/rocon $ roslaunch rocon_gateway gateway.launch gateway_firewall:=false gateway_network_interface:=net0\r\n... logging to /home/rlinsalata/.ros/log/aa923378-dd7b-11e4-ab41-90b11ca35e8f/roslaunch-p26-6019.log\r\nChecking log directory for disk usage. This may take awhile.\r\nPress Ctrl-C to interrupt\r\nDone checking log file disk usage. Usage is <1GB.\r\n\r\nstarted roslaunch server http://p26:51192/\r\n\r\nSUMMARY\r\n========\r\n\r\nPARAMETERS\r\n * /gateway/default_blacklist: [{'node': 'None',...\r\n * /gateway/disable_uuids: False\r\n * /gateway/firewall: False\r\n * /gateway/hub_whitelist: []\r\n * /gateway/name: gateway\r\n * /gateway/network_interface: net0\r\n * /gateway/watch_loop_period: 5\r\n * /rosdistro: indigo\r\n * /rosversion: 1.11.8\r\n\r\nNODES\r\n  /zeroconf/\r\n    zeroconf (zeroconf_avahi/zeroconf)\r\n  /\r\n    gateway (rocon_gateway/gateway.py)\r\n\r\nROS_MASTER_URI=http://localhost:11311\r\n\r\ncore service [/rosout] found\r\nprocess[zeroconf/zeroconf-1]: started with pid [6071]\r\nprocess[gateway-2]: started with pid [6092]\r\n[INFO] [WallTime: 1428615211.620333] Gateway : generated unique hash name [gateway2612f03968b0446d8a5c521b42b6aeb3]\r\n[WARN] [WallTime: 1428615211.622570] Gateway : no valid ip found for this host, just setting 'localhost'\r\nTraceback (most recent call last):\r\n  File \"/home/rlinsalata/ws/rocon/src/rocon_multimaster/rocon_gateway/scripts/gateway.py\", line 21, in <module>\r\n    gateway = GatewayNode()\r\n  File \"/home/rlinsalata/ws/rocon/src/rocon_multimaster/rocon_gateway/src/rocon_gateway/gateway_node.py\", line 55, in __init__\r\n    self._gateway = gateway.Gateway(self._hub_manager, self._param, self._unique_name, self._publish_gateway_info)\r\n  File \"/home/rlinsalata/ws/rocon/src/rocon_multimaster/rocon_gateway/src/rocon_gateway/gateway.py\", line 74, in __init__\r\n    self.network_interface_manager = NetworkInterfaceManager(self._param['network_interface'])\r\n  File \"/home/rlinsalata/ws/rocon/src/rocon_multimaster/rocon_gateway/src/rocon_gateway/network_interface_manager.py\", line 36, in __init__\r\n    self.detect_network_interface(interface_name)\r\n  File \"/home/rlinsalata/ws/rocon/src/rocon_multimaster/rocon_gateway/src/rocon_gateway/network_interface_manager.py\", line 50, in detect_network_interface\r\n    for interface in pythonwifi.getWNICnames():\r\n  File \"/home/rlinsalata/ws/rocon/src/rocon_tools/rocon_python_wifi/src/rocon_python_wifi/iwlibs.py\", line 77, in getWNICnames\r\n    fp = open('/proc/net/wireless', 'r')\r\nIOError: [Errno 2] No such file or directory: '/proc/net/wireless'\r\n[gateway-2] process has died [pid 6092, exit code 1, cmd /home/rlinsalata/ws/rocon/src/rocon_multimaster/rocon_gateway/scripts/gateway.py __name:=gateway __log:=/home/rlinsalata/.ros/log/aa923378-dd7b-11e4-ab41-90b11ca35e8f/gateway-2.log].\r\nlog file: /home/rlinsalata/.ros/log/aa923378-dd7b-11e4-ab41-90b11ca35e8f/gateway-2*.log\r\n^C[zeroconf/zeroconf-1] killing on exit\r\nshutting down processing monitor...\r\n... shutting down processing monitor complete\r\ndone\r\n\r\n```","created_at":"2015-04-09T22:29:46Z","updated_at":"2015-04-09T22:29:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/84/commits","review_comments_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/84/comments","review_comment_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/comments{/number}","comments_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/issues/84/comments","statuses_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/statuses/f53149c7611c936658e14ec4509380fab630b7a7","head":{"label":"rethink-rlinsalata:wifi_if_os_fallback","ref":"wifi_if_os_fallback","sha":"f53149c7611c936658e14ec4509380fab630b7a7","user":{"login":"rethink-rlinsalata","id":3229231,"avatar_url":"https://avatars.githubusercontent.com/u/3229231?v=3","gravatar_id":"","url":"https://api.github.com/users/rethink-rlinsalata","html_url":"https://github.com/rethink-rlinsalata","followers_url":"https://api.github.com/users/rethink-rlinsalata/followers","following_url":"https://api.github.com/users/rethink-rlinsalata/following{/other_user}","gists_url":"https://api.github.com/users/rethink-rlinsalata/gists{/gist_id}","starred_url":"https://api.github.com/users/rethink-rlinsalata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rethink-rlinsalata/subscriptions","organizations_url":"https://api.github.com/users/rethink-rlinsalata/orgs","repos_url":"https://api.github.com/users/rethink-rlinsalata/repos","events_url":"https://api.github.com/users/rethink-rlinsalata/events{/privacy}","received_events_url":"https://api.github.com/users/rethink-rlinsalata/received_events","type":"User","site_admin":false},"repo":{"id":33694433,"name":"rocon_tools","full_name":"rethink-rlinsalata/rocon_tools","owner":{"login":"rethink-rlinsalata","id":3229231,"avatar_url":"https://avatars.githubusercontent.com/u/3229231?v=3","gravatar_id":"","url":"https://api.github.com/users/rethink-rlinsalata","html_url":"https://github.com/rethink-rlinsalata","followers_url":"https://api.github.com/users/rethink-rlinsalata/followers","following_url":"https://api.github.com/users/rethink-rlinsalata/following{/other_user}","gists_url":"https://api.github.com/users/rethink-rlinsalata/gists{/gist_id}","starred_url":"https://api.github.com/users/rethink-rlinsalata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rethink-rlinsalata/subscriptions","organizations_url":"https://api.github.com/users/rethink-rlinsalata/orgs","repos_url":"https://api.github.com/users/rethink-rlinsalata/repos","events_url":"https://api.github.com/users/rethink-rlinsalata/events{/privacy}","received_events_url":"https://api.github.com/users/rethink-rlinsalata/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rethink-rlinsalata/rocon_tools","description":"Rocon tools and modules usable outside of multimaster systems.","fork":true,"url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools","forks_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/forks","keys_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/teams","hooks_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/hooks","issue_events_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/issues/events{/number}","events_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/events","assignees_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/assignees{/user}","branches_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/branches{/branch}","tags_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/tags","blobs_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/git/refs{/sha}","trees_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/statuses/{sha}","languages_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/languages","stargazers_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/stargazers","contributors_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/contributors","subscribers_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/subscribers","subscription_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/subscription","commits_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/commits{/sha}","git_commits_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/git/commits{/sha}","comments_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/comments{/number}","issue_comment_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/issues/comments{/number}","contents_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/contents/{+path}","compare_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/merges","archive_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/downloads","issues_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/issues{/number}","pulls_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/pulls{/number}","milestones_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/milestones{/number}","notifications_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/labels{/name}","releases_url":"https://api.github.com/repos/rethink-rlinsalata/rocon_tools/releases{/id}","created_at":"2015-04-09T21:46:25Z","updated_at":"2015-04-09T21:46:26Z","pushed_at":"2015-04-09T21:59:26Z","git_url":"git://github.com/rethink-rlinsalata/rocon_tools.git","ssh_url":"git@github.com:rethink-rlinsalata/rocon_tools.git","clone_url":"https://github.com/rethink-rlinsalata/rocon_tools.git","svn_url":"https://github.com/rethink-rlinsalata/rocon_tools","homepage":"","size":3389,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"indigo"}},"base":{"label":"robotics-in-concert:indigo","ref":"indigo","sha":"25b2d4d120a19e06e572f2e45ae1e9ba2a0120af","user":{"login":"robotics-in-concert","id":792809,"avatar_url":"https://avatars.githubusercontent.com/u/792809?v=3","gravatar_id":"","url":"https://api.github.com/users/robotics-in-concert","html_url":"https://github.com/robotics-in-concert","followers_url":"https://api.github.com/users/robotics-in-concert/followers","following_url":"https://api.github.com/users/robotics-in-concert/following{/other_user}","gists_url":"https://api.github.com/users/robotics-in-concert/gists{/gist_id}","starred_url":"https://api.github.com/users/robotics-in-concert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robotics-in-concert/subscriptions","organizations_url":"https://api.github.com/users/robotics-in-concert/orgs","repos_url":"https://api.github.com/users/robotics-in-concert/repos","events_url":"https://api.github.com/users/robotics-in-concert/events{/privacy}","received_events_url":"https://api.github.com/users/robotics-in-concert/received_events","type":"Organization","site_admin":false},"repo":{"id":15774638,"name":"rocon_tools","full_name":"robotics-in-concert/rocon_tools","owner":{"login":"robotics-in-concert","id":792809,"avatar_url":"https://avatars.githubusercontent.com/u/792809?v=3","gravatar_id":"","url":"https://api.github.com/users/robotics-in-concert","html_url":"https://github.com/robotics-in-concert","followers_url":"https://api.github.com/users/robotics-in-concert/followers","following_url":"https://api.github.com/users/robotics-in-concert/following{/other_user}","gists_url":"https://api.github.com/users/robotics-in-concert/gists{/gist_id}","starred_url":"https://api.github.com/users/robotics-in-concert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robotics-in-concert/subscriptions","organizations_url":"https://api.github.com/users/robotics-in-concert/orgs","repos_url":"https://api.github.com/users/robotics-in-concert/repos","events_url":"https://api.github.com/users/robotics-in-concert/events{/privacy}","received_events_url":"https://api.github.com/users/robotics-in-concert/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/robotics-in-concert/rocon_tools","description":"Rocon tools and modules usable outside of multimaster systems.","fork":false,"url":"https://api.github.com/repos/robotics-in-concert/rocon_tools","forks_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/forks","keys_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/teams","hooks_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/hooks","issue_events_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/issues/events{/number}","events_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/events","assignees_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/assignees{/user}","branches_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/branches{/branch}","tags_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/tags","blobs_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/git/refs{/sha}","trees_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/statuses/{sha}","languages_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/languages","stargazers_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/stargazers","contributors_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/contributors","subscribers_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/subscribers","subscription_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/subscription","commits_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/commits{/sha}","git_commits_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/git/commits{/sha}","comments_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/comments{/number}","issue_comment_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/issues/comments{/number}","contents_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/contents/{+path}","compare_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/merges","archive_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/downloads","issues_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/issues{/number}","pulls_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls{/number}","milestones_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/milestones{/number}","notifications_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/labels{/name}","releases_url":"https://api.github.com/repos/robotics-in-concert/rocon_tools/releases{/id}","created_at":"2014-01-09T18:02:42Z","updated_at":"2015-04-06T09:39:06Z","pushed_at":"2015-04-09T22:29:46Z","git_url":"git://github.com/robotics-in-concert/rocon_tools.git","ssh_url":"git@github.com:robotics-in-concert/rocon_tools.git","clone_url":"https://github.com/robotics-in-concert/rocon_tools.git","svn_url":"https://github.com/robotics-in-concert/rocon_tools","homepage":"","size":3389,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":7,"mirror_url":null,"open_issues_count":14,"forks":7,"open_issues":14,"watchers":0,"default_branch":"indigo"}},"_links":{"self":{"href":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/84"},"html":{"href":"https://github.com/robotics-in-concert/rocon_tools/pull/84"},"issue":{"href":"https://api.github.com/repos/robotics-in-concert/rocon_tools/issues/84"},"comments":{"href":"https://api.github.com/repos/robotics-in-concert/rocon_tools/issues/84/comments"},"review_comments":{"href":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/84/comments"},"review_comment":{"href":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/robotics-in-concert/rocon_tools/pulls/84/commits"},"statuses":{"href":"https://api.github.com/repos/robotics-in-concert/rocon_tools/statuses/f53149c7611c936658e14ec4509380fab630b7a7"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":8,"deletions":8,"changed_files":1}}