Forum Discussion

drumik_61546's avatar
drumik_61546
Icon for Nimbostratus rankNimbostratus
Dec 02, 2010

Issue with LTM Maintenance page on trial LTM VE on the Worksation

Did anybody had issues serving images and html pges from LTM VE trial version?

 

 

Seems to be that I already tried evrything and it still doesn't work properly.

 

 

Rule is applied but none of the images are displayed.

 

 

I already tried perl script to generate it and still no luck

 

 

On the side not I'm getting some weird signs at the top and the bottom of the HTML page

 

 

{ on the top and {} at the bottom

 

 

Thanks

5 Replies

  • An update

     

     

    Seems to be the issue is with decoding. I see error messages in the log

     

     

    conversion error invoked from within ""b64decode [class element 0 img.pngl]" ("/" arm line 1
  • Hi Drumik,

     

     

    Can you post anonymized copies of the iRule you're testing and the contents of the datagroup using 'b rule RULE_NAME list' and 'b class CLASS_NAME list'?

     

     

    Thanks, Aaron
  • Sorry, I'm wondering if I'm missing something small. Can you either edit your post or reply again with the output in [ code ] [/ code ] tags (without the spaces)?

     

     

    Thanks, Aaron
  • 
    B Class output
    
    class index.html.class {
       type string
       timestamp 2010-12-02 16:23:44
       filename "/var/class/index.html.class"
       mode read
       separator ":="
       partition Common
       "Maintenance pageSorry! This site is down for maintenance."
    }
    class logo.png.class {
       type string
       timestamp 2010-12-02 16:23:44
       filename "/var/class/logo.png.class"
       mode rw
       separator ":="
       partition Common
       "iVBORw0KGgoAAAANSUhEUgAAAL4AAAC3AgMAAADRFQzGAAAACVBMVEUAAADDAAD///8UoaPIAAAD
    hElEQVRo3u3ZOW7dMBAAUB8lSBXkPmTB3g1PEqSf3jAwgYenTP4icVYuXpDmq/Dyv564SSNy+NT2
    jpenB3iALYAp7wBI12MZpOOoayClgXAAMJAWAPLzbdMtSPIoM4AKpBnQ5+siNDAF6CI0sOerIhRw
    ClAdpUDyjhoDckGOAbggxcA/XzRbAApAjkBQI1EnAaLzeT9xQCHIPkB2QYrqxAHwy0FQJw5E8Rh0
    LAMkSw8awQDKa4HfCAZAXgpvVdeNYED3+HFdFAV3QPomgLMiyL7oAPWtj6zm/c8O4Ggb3S9HvDyw
    4Kwp3H/7AfwEdNboKGkFiMaDiXoC4FEjOro3jQEcNcL7vUALgN91FVV8qQqco3YHGRQoEtA5/BhE
    MAdUDUTlswS4C842R4CSAebZzBJUAdI7QJmAwgF54N8HaQSqB1K/YzIHOALX72IAbKBZwHy+9/Id
    9GGIQPoKoANsZSB9CSgdkAeyDsgfBXkKcgfogaJfqwtANjsAZxQp5k00AdXp5wOAnaCyIAMeaAPQ
    FoGdU9RVcFSqgzQBNAcgew1mgEyQmQDQ43KOvQPQmxCjBX/UMJVm6sSBvfmKnZSfgDxQ7UJnC+Au
    oClw1kYSlAmAXYATkB2QtwDtltAmoHwcwCeD6qz6/zOwsz3avDWmwLnB5SNqgRptmjzTwQRoDKRY
    AUIsAX6LiFAZAv5eWQPZAzAAvYhVkHdBX2y2RVAswCHIuyBtg1s/UV4GxQAag/xOUJZBMqB9BnjW
    3YRVTqUVyLgJCs1A0pFPDwToBYeOfHtATotLXyqyRZMARcxxF0A1gIpe+Akg81NzkGX+p5y9yhev
    A1BHAE8gAz+YBbiY8smlQG3nsnQNOCt2UmvRKrqpdxJPUxjQ+BOHE1A4uPwD1zj5k2dObG6Nz0iv
    X/9+5ckcC5BnFi8ffPsRZtYzX2hcCrt88Pb6ywHEIgur0eXH24tXQmOBAnuNalgCG7n+LoNbH353
    AU/gHU/i/QK8l3Q7qrejwseh0QC4qcfG3uEqP4Z+chP6WZT0ui/Otza9gheB18voXs4k/kYPU8DN
    fVfRIMkcJtajNPZ2ojxOxZfdZH+Qu3d3UIbbCdsbFlGdaghwd9OlTWu0snGURhtHtLs1NZheBYAm
    W1n2mYbdDTza3SLUHbWwzRlvrS1spJalnVcanB9Evvj8aLuZ3BX1Y1P+AUbgLzbWCp20NpfmAAAA
    AElFTkSuQmCC"
    }
    class png.class {
       type string
       timestamp 2010-12-02 16:23:44
       filename "/var/class/png.class"
       mode rw
       separator ":="
       partition Common
    lqWdVxqcH0S++Pxou5ncFfVjU/4BRuAvNtYNCp20NpfmSUVORK5CYII="NrdItQdtbDNGW+tLWykSBXk
    }
    
    B Rule output
    
    rule sorry_page_clearerror {
        Auto-generated by sorry_irule.pl
      when HTTP_REQUEST {
        
         Service requests for files (URIs) from the maintenance page
         Note that we always service these pages, even if the http_pool is up
        
        set uri [HTTP::uri]
        if { $uri equals "/clearerror" } {
           HTTP::respond 301 "Location" "/clearerror/"
           return
        }
        if { $uri starts_with "/clearerror/" } {
            trim off the maintenance prefix
           set uri [string range $uri 11 end]
    
            Return the requested page
           switch $uri {
    
             "/"              -
             "/index.html"   { HTTP::respond 200 content [class element 0 index.html.class ] "Content-Type" "text/html" }
    
             "/logo.png"   { HTTP::respond 200 content [b64decode [class element -value 0 logo.png.class ]] "Content-Type" "image/png" }
             "/img.png"   { HTTP::respond 200 content [b64decode [class element -value 0 png.class ]] "Content-Type" "image/png" }
             default         { HTTP::respond 404 }
               }
           return
        }
    
        
         If the http_pool is down, redirect to the maintenance page
        
        if { [active_members [LB::server pool]] < 1 } {
          HTTP::redirect "/clearerror/index.html"
          return
        }
      }
    
    
  • Problem solved

    I ended up embeding html as well as images within the IRule.

     
      
     when HTTP_REQUEST { 
          
          Service requests for files (URIs) from the maintenance page 
          Note that we always service these pages, even if the http_pool is up 
          
         set uri [HTTP::uri] 
         if { $uri equals "/clearerror" } { 
            HTTP::respond 301 "Location" "/clearerror/" 
            return 
         } 
         if { $uri starts_with "/clearerror/" } { 
             trim off the maintenance prefix 
            set uri [string range $uri 11 end] 
      
             Return the requested page 
            switch $uri { 
      
              "/"              - 
              "/index.html"   { HTTP::respond 200 content "Maintenance pageSorry! This site is down for maintenance." "Content-Type" "text/html" } 
      
              "/logo.png"   { HTTP::respond 200 content [b64decode ""iVBORw0KGgoAAAANSUhEUgAAAL4AAAC3AgMAAADRFQzGAAAACVBMVEUAAADDAAD///8UoaPIAAAD 
     hElEQVRo3u3ZOW7dMBAAUB8lSBXkPmTB3g1PEqSf3jAwgYenTP4icVYuXpDmq/Dyv564SSNy+NT2 
     jpenB3iALYAp7wBI12MZpOOoayClgXAAMJAWAPLzbdMtSPIoM4AKpBnQ5+siNDAF6CI0sOerIhRw 
     ClAdpUDyjhoDckGOAbggxcA/XzRbAApAjkBQI1EnAaLzeT9xQCHIPkB2QYrqxAHwy0FQJw5E8Rh0 
     LAMkSw8awQDKa4HfCAZAXgpvVdeNYED3+HFdFAV3QPomgLMiyL7oAPWtj6zm/c8O4Ggb3S9HvDyw 
     4Kwp3H/7AfwEdNboKGkFiMaDiXoC4FEjOro3jQEcNcL7vUALgN91FVV8qQqco3YHGRQoEtA5/BhE 
     MAdUDUTlswS4C842R4CSAebZzBJUAdI7QJmAwgF54N8HaQSqB1K/YzIHOALX72IAbKBZwHy+9/Id 
     9GGIQPoKoANsZSB9CSgdkAeyDsgfBXkKcgfogaJfqwtANjsAZxQp5k00AdXp5wOAnaCyIAMeaAPQ 
     FoGdU9RVcFSqgzQBNAcgew1mgEyQmQDQ43KOvQPQmxCjBX/UMJVm6sSBvfmKnZSfgDxQ7UJnC+Au 
     oClw1kYSlAmAXYATkB2QtwDtltAmoHwcwCeD6qz6/zOwsz3avDWmwLnB5SNqgRptmjzTwQRoDKRY 
     AUIsAX6LiFAZAv5eWQPZAzAAvYhVkHdBX2y2RVAswCHIuyBtg1s/UV4GxQAag/xOUJZBMqB9BnjW 
     3YRVTqUVyLgJCs1A0pFPDwToBYeOfHtATotLXyqyRZMARcxxF0A1gIpe+Akg81NzkGX+p5y9yhev 
     A1BHAE8gAz+YBbiY8smlQG3nsnQNOCt2UmvRKrqpdxJPUxjQ+BOHE1A4uPwD1zj5k2dObG6Nz0iv 
     X/9+5ckcC5BnFi8ffPsRZtYzX2hcCrt88Pb6ywHEIgur0eXH24tXQmOBAnuNalgCG7n+LoNbH353 
     AU/gHU/i/QK8l3Q7qrejwseh0QC4qcfG3uEqP4Z+chP6WZT0ui/Otza9gheB18voXs4k/kYPU8DN 
     fVfRIMkcJtajNPZ2ojxOxZfdZH+Qu3d3UIbbCdsbFlGdaghwd9OlTWu0snGURhtHtLs1NZheBYAm 
     W1n2mYbdDTza3SLUHbWwzRlvrS1spJalnVcanB9Evvj8aLuZ3BX1Y1P+AUbgLzbWCp20NpfmAAAA 
     AElFTkSuQmCC"] "Content-Type" "image/png" } 
               
              default         { HTTP::respond 404 } 
                } 
            return 
         } 
      
          
          If the http_pool is down, redirect to the maintenance page 
          
         if { [active_members [LB::server pool]] < 1 } { 
           HTTP::redirect "/clearerror/index.html" 
           return 
         } 
       }