{"action":"created","issue":{"url":"https://api.github.com/repos/F5Networks/f5-common-python/issues/398","repository_url":"https://api.github.com/repos/F5Networks/f5-common-python","labels_url":"https://api.github.com/repos/F5Networks/f5-common-python/issues/398/labels{/name}","comments_url":"https://api.github.com/repos/F5Networks/f5-common-python/issues/398/comments","events_url":"https://api.github.com/repos/F5Networks/f5-common-python/issues/398/events","html_url":"https://github.com/F5Networks/f5-common-python/pull/398","id":154124659,"number":398,"title":"Feature.clustering","user":{"login":"pjbreaux","id":14225800,"avatar_url":"https://avatars.githubusercontent.com/u/14225800?v=3","gravatar_id":"","url":"https://api.github.com/users/pjbreaux","html_url":"https://github.com/pjbreaux","followers_url":"https://api.github.com/users/pjbreaux/followers","following_url":"https://api.github.com/users/pjbreaux/following{/other_user}","gists_url":"https://api.github.com/users/pjbreaux/gists{/gist_id}","starred_url":"https://api.github.com/users/pjbreaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjbreaux/subscriptions","organizations_url":"https://api.github.com/users/pjbreaux/orgs","repos_url":"https://api.github.com/users/pjbreaux/repos","events_url":"https://api.github.com/users/pjbreaux/events{/privacy}","received_events_url":"https://api.github.com/users/pjbreaux/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/F5Networks/f5-common-python/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/F5Networks/f5-common-python/labels/feature%20request","name":"feature request","color":"bfd4f2"},{"url":"https://api.github.com/repos/F5Networks/f5-common-python/labels/functional%20test","name":"functional test","color":"bfdadc"}],"state":"closed","locked":false,"assignee":{"login":"zancas","id":640955,"avatar_url":"https://avatars.githubusercontent.com/u/640955?v=3","gravatar_id":"","url":"https://api.github.com/users/zancas","html_url":"https://github.com/zancas","followers_url":"https://api.github.com/users/zancas/followers","following_url":"https://api.github.com/users/zancas/following{/other_user}","gists_url":"https://api.github.com/users/zancas/gists{/gist_id}","starred_url":"https://api.github.com/users/zancas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zancas/subscriptions","organizations_url":"https://api.github.com/users/zancas/orgs","repos_url":"https://api.github.com/users/zancas/repos","events_url":"https://api.github.com/users/zancas/events{/privacy}","received_events_url":"https://api.github.com/users/zancas/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2016-05-10T22:54:50Z","updated_at":"2016-05-11T15:36:15Z","closed_at":"2016-05-11T15:36:15Z","pull_request":{"url":"https://api.github.com/repos/F5Networks/f5-common-python/pulls/398","html_url":"https://github.com/F5Networks/f5-common-python/pull/398","diff_url":"https://github.com/F5Networks/f5-common-python/pull/398.diff","patch_url":"https://github.com/F5Networks/f5-common-python/pull/398.patch"},"body":"@zancas \r\n\r\n#### What's this change do?\r\nImplements the first bare features of BigIP clustering and scaling.\r\n\r\n#### Any background context?\r\nThere is a need to cluster multiple BigIP devices (>=2 to <=8) with two basic cluster types ('sync-only', 'sync-failover'). This is the first basic features of that functionality. There are a few additional structures that have been added here. One important one is the f5/cluster directory, which holds the handlers for managing a cluster, device_group, and trusted_peers. These modules are simply wrappers around BigIP resource command (cm.device_groups.device_group) to control the order and timing of clustering.\r\n\r\n\r\n#### Where should the reviewer start?\r\n\r\nStart at the single functional test for 'sync-failover' and then move on to the f5/cluster/cluster_manager.py. After that, you can look at the trusted_peer_manager.py and the device_group_manager.py.\r\n\r\nI hate using 'manager' here, but it best describes what we're trying to accomplish. To run the functional tests, you'll need to create at least three BigIPs. Come talk to me!"},"comment":{"url":"https://api.github.com/repos/F5Networks/f5-common-python/issues/comments/218497713","html_url":"https://github.com/F5Networks/f5-common-python/pull/398#issuecomment-218497713","issue_url":"https://api.github.com/repos/F5Networks/f5-common-python/issues/398","id":218497713,"user":{"login":"pjbreaux","id":14225800,"avatar_url":"https://avatars.githubusercontent.com/u/14225800?v=3","gravatar_id":"","url":"https://api.github.com/users/pjbreaux","html_url":"https://github.com/pjbreaux","followers_url":"https://api.github.com/users/pjbreaux/followers","following_url":"https://api.github.com/users/pjbreaux/following{/other_user}","gists_url":"https://api.github.com/users/pjbreaux/gists{/gist_id}","starred_url":"https://api.github.com/users/pjbreaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjbreaux/subscriptions","organizations_url":"https://api.github.com/users/pjbreaux/orgs","repos_url":"https://api.github.com/users/pjbreaux/repos","events_url":"https://api.github.com/users/pjbreaux/events{/privacy}","received_events_url":"https://api.github.com/users/pjbreaux/received_events","type":"User","site_admin":false},"created_at":"2016-05-11T15:36:15Z","updated_at":"2016-05-11T15:36:15Z","body":"Reviewing my commits and reopening with a bit better commit history."}}