VMware Cloud Community
Mururam
Contributor
Contributor

Edge Gateway - Unable to set "Enable Multiple Interface Support" to true thru VCO

I don't find a way thru VCO to set "Enable Multiple Interface Support" for an Edge Gateway.

I am attaching a screenshot from VCloud Director UI, about this option. I am trying to set the boolean value of true thru VCO for this attribute "Enable Multiple Interface Support", but could not find it. Is there a way thru VCO to fix this issue.

Thanks,

Mururam

0 Kudos
6 Replies
cdecanini_
VMware Employee
VMware Employee

I do not have the option in the UI in my test server (certainly because edgeGateways are not upgraded to full impl)

To find out the property:

Enable vCD plug-in debug mode as described here : http://www.vcoteam.info/learn-vco/how-to-handle-vcenter-orchestrator-logs.html

Create a workflow with a vclEdgegateway type input named "gateway".Add a scriptable box, add to its input gateway, add the script gateway.updateInternalState();

Save and close, run workflow.

Change the setting in vCD UI.

Run the workflow.

Check your server.log file. Inside you will find the XML representation of the edgeGateway object twice. Check the difference between the two.

Christophe.

If my answer resolved or helped you, please mark it as Correct or Helpful to award points. Thank you! Visit http://www.vcoteam.info & http://blogs.vmware.com/orchestrator for vCenter Orchestrator tips and tutorials - @vCOTeam on Twitter
0 Kudos
Burke-
VMware Employee
VMware Employee

What version of vCloud Director are you using?

How are you creating an Edge without multi-interface support enabled? When I create a new Edge, there is no option for this, when I get done creating an Edge, the screen shows a green checkmark for multi-interface support.

Screen Shot 2013-04-02 at 2.15.11 PM.png

The unchecked box you show in the screenshot appears briefly when I check the properties of any of my Edges and then disappears - I assume because the UI is checking the config, finding that is enabled, then hiding that checkbox option... I have tried with 1 and 2 external networks attached to the Edge and have the same results in each case.

Side Note for Christophe: There is not supposed to be a feature difference between compact vs. full mode, only performance diff

Message was edited by: Burke- --- After further reading here (http://pubs.vmware.com/vcd-51/index.jsp?topic=%2Fcom.vmware.vcloud.install.doc_51%2FGUID-942EDFB8-66... ) it seems this may present itself when you have upgraded edges - is this the case for your environment??

If my answer resolved or helped you, please mark it as Correct or Helpful to award points. Thank you!

Visit http://www.vcoteam.info & http://blogs.vmware.com/orchestrator
for vRealize Orchestrator tips and tutorials - @TechnicalValues on Twitter
0 Kudos
schiguru
Contributor
Contributor

Hi Christophe,

I am working with my team mate on this. I tried the steps that you mentioned, howe I don't see the XML output in the Server logs.

2013-04-10 16:41:14.912+0000 DEBUG [WrappedJavaMethod] Calling method : public void com.vmware.vmo.plugin.vcloud.model.admin.Gateway.updateInternalState()
2013-04-10 16:41:15.275+0000 DEBUG [WrappedJavaMethod] Pre-Result : NULL
2013-04-10 16:41:15.275+0000 DEBUG [WrappedJavaMethod] Post-Result : null
Also I tried to use the toXml() for both the Gateway and Gateway Config objects but always get null.
Any thoughts?
Thanks,
Sri
0 Kudos
cdecanini_
VMware Employee
VMware Employee

Once you have added the following section to the log4j file you should see plenty XML in your logs.

<category additivity="true" name="com.vmware.vmo.plugin.vcloud">

<priority value="DEBUG"/>
</category>

Doublecheck you got it right.

If my answer resolved or helped you, please mark it as Correct or Helpful to award points. Thank you! Visit http://www.vcoteam.info & http://blogs.vmware.com/orchestrator for vCenter Orchestrator tips and tutorials - @vCOTeam on Twitter
0 Kudos
schiguru
Contributor
Contributor

No luck. Let me give the complete details.

My Script:

Server.log("GW Info : Begin");
Server.log("Edge GW Name: " + edgeGw.name);
System.log("GW Info : Begin");
System.log("Edge GW Name: " + edgeGw.name);

edgeGw.updateInternalState();
Server.log("GW XML Output:" + edgeGw.configuration.toXml());
System.log("GW XML Output:" + edgeGw.configuration.toXml());

Server.log("GW Info : End");
System.log("GW Info : End");

The output:

013-04-10 21:50:40.617+0000 INFO [SCRIPTING_LOG] [gwTest (4/10/13 21:50:40)] GW Info : Begin
2013-04-10 21:50:40.619+0000 INFO [SCRIPTING_LOG] [gwTest (4/10/13 21:50:40)] Edge GW Name: EG_1365129202014
2013-04-10 21:50:40.620+0000 DEBUG [WrappedJavaMethod] Calling method : public void com.vmware.vmo.plugin.vcloud.model.admin.Gateway.updateInternalState()
2013-04-10 21:50:40.620+0000 DEBUG [VCloudAdaptor] getSdkGateway() --> id: https://<XXXXXXXX>/api/admin/edgeGateway/f72fdb6f-07c7-4775-8a1f-58b9fc4bdc57
2013-04-10 21:50:41.222+0000 DEBUG [WrappedJavaMethod] Pre-Result : NULL
2013-04-10 21:50:41.222+0000 DEBUG [WrappedJavaMethod] Post-Result : null
2013-04-10 21:50:41.223+0000 DEBUG [WrappedJavaMethod] Calling method : public java.lang.String com.vmware.vmo.plugin.vcloud.model.VCloudExtensible.toXml() throws java.lang.IllegalArgumentException,java.lang.ClassNotFoundException,java.lang.IllegalAccessException,java.lang.reflect.InvocationTargetException,java.lang.InstantiationException
2013-04-10 21:50:41.223+0000 DEBUG [WrappedJavaMethod] Pre-Result : NULL
2013-04-10 21:50:41.223+0000 DEBUG [WrappedJavaMethod] Post-Result : null
2013-04-10 21:50:41.223+0000 DEBUG [ServerObject] --Generating Event in Database !
2013-04-10 21:50:41.228+0000 DEBUG [WrappedJavaMethod] Calling method : public java.lang.String com.vmware.vmo.plugin.vcloud.model.VCloudExtensible.toXml() throws java.lang.IllegalArgumentException,java.lang.ClassNotFoundException,java.lang.IllegalAccessException,java.lang.reflect.InvocationTargetException,java.lang.InstantiationException
2013-04-10 21:50:41.228+0000 DEBUG [WrappedJavaMethod] Pre-Result : NULL
2013-04-10 21:50:41.228+0000 DEBUG [WrappedJavaMethod] Post-Result : null
2013-04-10 21:50:41.228+0000 INFO [SCRIPTING_LOG] [gwTest (4/10/13 21:50:40)] GW XML Output:null
2013-04-10 21:50:41.229+0000 DEBUG [ServerObject] --Generating Event in Database !
2013-04-10 21:50:41.252+0000 INFO [SCRIPTING_LOG] [gwTest (4/10/13 21:50:40)] GW Info : End
The settings in log4j exactly the same as you suggested and the config service restarted.
Am I missing something?
Thanks,
Sri
0 Kudos
cdecanini_
VMware Employee
VMware Employee

You certainly have an issue in your log4j since I ran your script and had the full XML of the gateway in the server.log

Here is my log4j

<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- Log4j Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id$ -->
<!--
    | For more configuration infromation and examples see the Jakarta Log4j
    | owebsite: http://jakarta.apache.org/log4j
--><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false" threshold="null">

    <!-- ================================= -->
    <!-- Preserve messages in a local file -->
    <!-- ================================= -->

    <!-- A time/date based rolling appender -->
    <appender class="org.jboss.logging.appender.RollingFileAppender" name="FILE">
        <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" />
        <param name="File" value="${jboss.server.home.dir}/log/server.log" />
        <param name="Append" value="true" />
        <param name="Encoding" value="UTF-8" />

        <!-- Rollover at 5MB and allow 4 rollover files -->
        <param name="MaxFileSize" value="5120KB" />
        <param name="MaxBackupIndex" value="4" />

        <layout class="org.apache.log4j.PatternLayout">
            <!-- The default pattern: Date Priority [Category] Message\n -->
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSSZ} %-5p [%c{1}] %m%n" />
        </layout>
    </appender>

    <!-- A time/date based rolling appender for boot state -->
    <appender class="org.jboss.logging.appender.RollingFileAppender" name="BOOT_STATE_FILE">
        <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" />
        <param name="File" value="${jboss.server.home.dir}/log/boot-state.log" />
        <param name="Append" value="false" />
        <param name="Encoding" value="UTF-8" />

        <!-- Rollover at 1MB and allow 4 rollover files -->
        <param name="MaxFileSize" value="1024KB" />
        <param name="MaxBackupIndex" value="4" />

        <layout class="org.apache.log4j.PatternLayout">
            <!-- The default pattern: Date Priority [Category] Message\n -->
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSSZ} %-5p [%c{1}] %m%n" />
        </layout>
    </appender>

    <!-- A time/date based rolling appender for Scripting logs -->
    <appender class="org.jboss.logging.appender.RollingFileAppender" name="SCRIPT_LOGS">
        <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" />
        <param name="File" value="${jboss.server.home.dir}/log/script-logs.log" />
        <param name="Append" value="true" />
        <param name="Threshold" value="DEBUG" />
        <param name="Encoding" value="UTF-8" />

        <!-- Rollover at 1MB and allow 4 rollover files -->
        <param name="MaxFileSize" value="1024KB" />
        <param name="MaxBackupIndex" value="4" />

        <layout class="org.apache.log4j.PatternLayout">
            <!-- The default pattern: Date Priority [Category] Message\n -->
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSSZ} %-5p [%c{1}] %m%n" />
        </layout>
    </appender>

    <!-- ============================== -->
    <!-- Append messages to the console -->
    <!-- ============================== -->

    <appender class="org.apache.log4j.ConsoleAppender" name="CONSOLE">
        <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" />
        <param name="Target" value="System.out" />
        <param name="Threshold" value="INFO" />
        <param name="Encoding" value="UTF-8" />

        <layout class="org.apache.log4j.PatternLayout">
            <!-- The default pattern: Date Priority [Category] Message\n -->
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSSZ} %-5p [%c{1}] %m%n" />
        </layout>
    </appender>

    <appender class="org.jboss.logging.appender.RollingFileAppender" name="VIM_AXIS_FILE">
        <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
        <param name="File" value="${jboss.server.home.dir}/log/vim_axis.log"/>
        <param name="Append" value="true"/>
        <param name="Encoding" value="UTF-8"/>

        <!-- Rollover at 10MB and allow 4 rollover files -->
        <param name="MaxFileSize" value="10240KB"/>
        <param name="MaxBackupIndex" value="4"/>

        <layout class="org.apache.log4j.PatternLayout">
            <!-- The default pattern: Date Priority [Category] Message\n -->
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSSZ} %-5p [%c{1}] %m%n"/>
        </layout>
    </appender>

    <category additivity="true" name="org.apache.axis.transport.http.HTTPSender">
        <priority value="INFO"/>
        <appender-ref ref="VIM_AXIS_FILE"/>
    </category>

    <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
    <category additivity="true" name="org.jgroups">
        <priority value="WARN" />
    </category>

    <!-- Limit jboss axis to INFO as its DEBUG is even more verbose -->
    <category additivity="true" name="org.jboss.axis">
        <priority value="INFO" />
    </category>

    <!-- Limit the JSR77 categories -->
    <category additivity="true" name="org.jboss.management">
        <priority value="INFO" />
    </category>

    <!-- VMware vCO -->
    <category additivity="true" name="ch.dunes">
        <priority value="INFO" />
    </category>

    <category additivity="true" name="com.vmware">
        <priority value="INFO" />
    </category>

    <!-- Execution log -->
    <category additivity="true" name="Execution">
        <priority value="INFO" />
    </category>

    <!-- Scripting log -->
    <category additivity="false" name="SCRIPTING_LOG">
        <priority value="DEBUG" />
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
        <appender-ref ref="SCRIPT_LOGS" />
    </category>

    <category additivity="true" name="org.jboss.naming.NamingService">
        <priority value="OFF" />
    </category>

    <!-- Remove the 'Bound to JNDI name' log info -->
    <category additivity="true" name="org.hornetq">
        <priority value="WARN" />
    </category>

    <!-- JDBC debug -->
    <category additivity="true" name="org.jboss.ejb.plugins.cmp">
        <priority value="WARN" />
    </category>

    <!-- LogInterceptor FATAL -->
    <category additivity="true" name="org.jboss.ejb.plugins.LogInterceptor">
        <priority value="FATAL" />
    </category>

    <!-- VMware Infrastructure plugins -->
    <category additivity="true" name="com.vmware.vmo.plugin.vi35">
        <priority value="INFO" />
    </category>

    <category additivity="true" name="com.vmware.vmo.plugin.vi4">
        <priority value="INFO" />
    </category>

    <category additivity="true" name="com.vmware.vmo.plugin.vcloud">
        <priority value="DEBUG" />
    </category>

   
    <!-- Limit the org.hibernate category to WARN as its INFO is verbose -->
    <category additivity="true" name="org.hibernate">
        <priority value="WARN" />
    </category>

    <!-- WebView info -->
    <!--
        <category additivity="true" name="ch.dunes.web">
        <priority value="INFO"/>
        </category>
    -->

    <!-- To log server boot state -->
    <category additivity="true" name="ch.dunes.model.mbean.log.LogEventWriter">
        <priority value="INFO" />
        <appender-ref ref="BOOT_STATE_FILE" />
    </category>

    <category additivity="true" name="org.springframework.core.type.classreading">
        <priority value="FATAL" />
        <appender-ref ref="FILE" />
    </category>

    <category additivity="true" name="com.vmware.vim.sso.client.impl.SoapBindingImpl">
        <priority value="FATAL" />
        <appender-ref ref="FILE" />
    </category>
   
    <category additivity="true" name="com.vmware.vim.sso.client.impl.SamlTokenImpl">
        <priority value="FATAL" />
        <appender-ref ref="FILE" />
    </category>

    <!-- ======================= -->
    <!-- Setup the Root category -->
    <!-- ======================= -->

    <root>
        <priority value="INFO" />

        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

</log4j:configuration>

If my answer resolved or helped you, please mark it as Correct or Helpful to award points. Thank you! Visit http://www.vcoteam.info & http://blogs.vmware.com/orchestrator for vCenter Orchestrator tips and tutorials - @vCOTeam on Twitter
0 Kudos