2016-08-09 77 views
0

所以我创建一个Ruby脚本的API脚本Bluecat(IPAM)。我有没有问题的登录,但是当我尝试运行一个附加的IPv4命令我得到这个错误:红宝石皂错误;登录,但没有登录错误

in `raise_soap_and_http_errors!': (env:Server) Not logged in (Savon::SOAPFault) 

我的剧本(与取出一些额外的代码)低于:

require 'savon' 
require 'csv' 

module Bluecat 
class Api 

WsdlUrl = 'http:/bluecat/Services/API?wsdl' 
User = 'username' 
Pass = 'password' 

attr_accessor :auth_cookies 
attr_accessor :client 
def initialize 
    @client = Savon.client(wsdl: WsdlUrl) 
    unless client.nil? 
    login 
    puts client.operations 
    addIP4Network 
    else 
    print "No client\n" 
    end 
    print "Got cookies %s\n" % auth_cookies 
    logout 
end 

def login 
    response = client.call(:login) do 
    message username: User, password: Pass 
    end 
    @auth_cookies = response.http.cookies 
end 

def logout 
    puts "logging out" 
    client.call(:logout) 
end 

def addIP4Network 
    CSV.foreach('CSV', :headers => true , :encoding => 'ISO-8859-1') do |row,i| 

    message = {'blockId' => 'example' , 'CIDR' => row[0] , 'properties' => "configuration = COV "} 
    response = client.call(:add_ip4_network, message: message) 

    end 
end 
end 
end 

任何想法,为什么我得到这个错误?谢谢

回答

0

我有同样的问题。显然,你需要发送每个请求的cookie。

变化

response = client.call(:add_ip4_network, message: message) 

response = client.call(:add_ip4_network, message: message, cookies: auth_cookies) 
+0

这个工作。谢谢! – Jake