{"id":21085423,"url":"https://github.com/magec/icontrol","last_synced_at":"2025-07-09T17:05:29.224Z","repository":{"id":56877245,"uuid":"676657","full_name":"magec/icontrol","owner":"magec","description":"This gem allows you to connect to a F5 appliance ","archived":false,"fork":false,"pushed_at":"2011-07-20T09:14:55.000Z","size":1581,"stargazers_count":14,"open_issues_count":5,"forks_count":7,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-26T12:02:37.276Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://magec.es/icontrol","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magec.png","metadata":{"files":{"readme":"README.rdoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-05-20T08:24:10.000Z","updated_at":"2024-12-17T07:52:14.000Z","dependencies_parsed_at":"2022-08-20T11:31:04.456Z","dependency_job_id":null,"html_url":"https://github.com/magec/icontrol","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/magec/icontrol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magec%2Ficontrol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magec%2Ficontrol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magec%2Ficontrol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magec%2Ficontrol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magec","download_url":"https://codeload.github.com/magec/icontrol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magec%2Ficontrol/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262063448,"owners_count":23252761,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T20:33:13.185Z","updated_at":"2025-06-26T12:04:03.414Z","avatar_url":"https://github.com/magec.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= IControl: F5 BigIP SOAP API Client\n\nIControl allows you to easily connect to a BigIP F5 load balancer and by means of the SOAP API. You can programmatically do almost the same things that you would do throught the Web Interface.\n\n= Installing\n\n== Install the gem:\n    gem install icontrol\n\n= Configuring\n\nIn order to configure you just have to set up the username, password and the server you're connecting to:\n\n\tIControl.config[:user] =  'username'\n\tIControl.config[:password] = 'secret'\n\tIControl.config[:base_url] = \"https://myf5.test.com/\"\n\n= Using the library\n\nBassically the library is the same as the one documented in the f5 devcentral but using ruby docs (http://devcentral.f5.com/wiki/default.aspx/iControl/APIReference.html). The main difference is that while the icontrol api does allow the bulk operation over a number of elements at the same time, in this case we limit it to just one at a time. So, for example, if you one to set the default pool for a virtual server, in the f5 doc, it says you have to pass 2 parameters\n    set_default_pool_name(\n      in String [] virtual_servers,\n      in String [] default_pools\n   );\nSo you can change several default pools at a time. On the contrary this library adopts a more object oriented design and only allows to work with one object at a time, i. e. and talking ruby, you don't have a set_default_pool_name class method but an instance one, so you have to first retreive the virtual server and later set its default pool. Something like this\n  IControl::LocalLB::VirtualServer.find(\"my_virtual_server).set_default_pool_name(:default_pool =\u003e \"the default pool name\")\nif you want to do it in every virtual server then you do something like this.\n  IControl::LocalLB::VirtualServer.find(:all).each { |vs| vs.set_default_pool_name(:default_pool =\u003e \"the default pool name\") }\nI think you get the point. Note that now the parameter name is :default_pool and not :default_pools, because of the semantics change.\n\n== Documentation\n\nThe documentation can be found in http://magec.es/icontrol\n\n== Virtual Servers\n\nYou can retreive, create, delete and modify virtual servers, for more information see IControl::LocalLB::VirtualServer. As an example of you what you can do:\n\n=== Creating a virtual Server\n  IControl::LocalLB::VirtualServer.create(:definition =\u003e {\n                                            :address =\u003e \"192.168.99.99\",\n                                            :name =\u003e \"test_virtual_server\",\n                                            :port =\u003e \"4\",\n                                            :protocol =\u003e IControl::Common::ProtocolType::PROTOCOL_TCP\n                                          },\n                                          :wildmask =\u003e \"255.255.255.255\",\n                                          :resource =\u003e {\n                                            :type =\u003e IControl::LocalLB::VirtualServer::VirtualServerType::RESOURCE_TYPE_POOL,\n                                            :default_pool_name =\u003e \"\"\n                                          },\n                                          :profiles =\u003e [])\n\n\n=== Obtaining an instance of a virtual server\n\n\n my_virtual_server = IControl::LocalLB::VirtualServer.find(\"virtual_server_name\")\n\n\n=== Changing its default pool\n\n my_virtual_server.set_default_pool_name(:default_pool =\u003e \"my_pool_name\")\n\n=== Destroying it\n\n my_virtual_server.destroy\n\n== Note on Patches/Pull Requests\n \n* Fork the project.\n* Make your feature addition or bug fix.\n* Add tests for it. This is important so I don't break it in a\n  future version unintentionally.\n* Commit, do not mess with rakefile, version, or history.\n  (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)\n* Send me a pull request. Bonus points for topic branches.\n\n== Copyright\nThis documentation is based on the original documentation procided by F5 Networks, Inc., Seattle, Washington\nCopyright (c) 2010 Jose Fernandez (magec). See LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagec%2Ficontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagec%2Ficontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagec%2Ficontrol/lists"}