Octopus Deploy integration with F5
Hi, Using the "F5 - Enable, Disable, or Force Offline Member with optional wait for connections to drop" step in Octopus, I'm trying to disable a member in a pool. The disabling itself works, but the "get_statistics()" call to determine when there are no more active connections to the member is failing. The code: $pool_name = "path to my pool" $member = "member:port" $vals = $member.Split( (, ':')); $member_addr = $vals[0]; $member_port = $vals[1]; $MemberDef = New-Object -TypeName iControl.CommonIPPortDefinition; $MemberDef.address = $member_addr; $MemberDef.port = $member_port; $MemberDefAofA = New-Object -TypeName "iControl.CommonIPPortDefinition[][]" 1,1 $MemberDefAofA[0][0] = $MemberDef; $F5.LocalLBPoolMember.get_statistics( (, $pool_name), $MemberDefAofA); The error: Exception calling "get_statistics" with "2" argument(s): "Exception caught in LocalLB::urn:iControl:LocalLB/PoolMember::get_statistics() Exception: Common::OperationFailed primary_error_code : 16908336 (0x01020030) secondary_error_code : 0 error_string : " At line:19 char:1 + $F5.LocalLBPoolMember.get_statistics( (, $pool_name), $MemberDefAofA) ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SoapHeaderException We're running BIG-IP 12.1.2. Any help or advice will be greatly appreciated! Thanks, SeanSolved850Views0likes1CommentCommonStatistic objects occupies more heap during execution and does not clean up during GC
I am collecting various statistics for device and its objects as well, by using iControl (code below) . CommonStatistic objects are getting piled up in my heap and is not cleared during GC(suspecting that its getting stored in the tenured space directly). This is causing Outofmemory error after certain repeated stats collections Device level final SystemStatisticsBindingStub systemStatistics = iControl.getSystemStatistics(); final SystemCPUUsageExtended[] hosts = retrieveCPUUsageExtendedInformation(device, iControl); for (SystemCPUUsageExtended systemCPUUsageExtended : hosts) { final CommonStatistic[][] statistics1 = systemCPUUsageExtended.getStatistics(); for (CommonStatistic[] commonStatistics : statistics1) { for (CommonStatistic commonStatistic : commonStatistics) { doSomething(); } } } Object level objectStatistics = iControl.getGlobalLBPool().get_statistics(objectList); final GlobalLBPoolPoolStatisticEntry[] statistics = getStatistics.getStatistics(); for (GlobalLBPoolPoolStatisticEntry globalLBPoolPoolStatisticEntry : statistics) { final CommonStatistic[] statistics2 = globalLBPoolPoolStatisticEntry.getStatistics(); for (CommonStatistic commonStatistic : statistics2) { doSomething(); } } Any suggestions/solutions please...270Views0likes0CommentsCommon::ULong64 returning Signed Integers in iControl
Is the documentation correct? I am getting signed values returned from the LocalLB::ProfileClientSSL::get_statistics module using iControl with Powershell. I've seen some other posts stating that the High and Low members were actually Signed 32bit Integers (which would not make much sense as they are used to derive into an Unsigned 64bit Integer). What is the correct types and conversion factor. https://devcentral.f5.com/wiki/iControl.Common__ULong64.ashx Common::ULong64 iControl :: Common :: ULong64 Introduced : BIG-IP_v9.0 A 64-bit, unsigned integer. Member Type Description high long The high-order 32-bit unsigned integer. low long The low-order 32-bit unsigned integer.275Views0likes2Comments