<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="CloudStack.Plugin.AgentShell.AgentSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="CloudStack.Plugin.AgentShell.AgentSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="cloudstack-agent.log" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <appendToFile value="true" />
      <param name="ApplicationName" value="CloudStack Hyper-V Agent" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="EventLogAppender"/>
    </root>
  </log4net>
  
  <applicationSettings>
    <CloudStack.Plugin.AgentShell.AgentSettings>
      <setting name="cpus" serializeAs="String">
        <value>8</value>
      </setting>
      <setting name="type" serializeAs="String">
        <value>Routing</value>
      </setting>
      <setting name="local_storage_uuid" serializeAs="String">
        <value>5fe2bad3-d785-394e-9949-89786b8a63d2</value>
      </setting>
      <setting name="capabilities" serializeAs="String">
        <value>hvm</value>
      </setting>
      <setting name="Settingcpuspeed" serializeAs="String">
        <value>2130</value>
      </setting>
      <setting name="port" serializeAs="String">
        <value>8250</value>
      </setting>
      <setting name="memory" serializeAs="String">
        <value>34359738368</value>
      </setting>
      <setting name="host" serializeAs="String">
        <value>camldonall01.citrite.net</value>
      </setting>
      <setting name="pod" serializeAs="String">
        <value>1</value>
      </setting>
      <setting name="gateway_ip_address" serializeAs="String">
        <value>10.102.192.1</value>
      </setting>
      <setting name="cluster" serializeAs="String">
        <value>2</value>
      </setting>
      <setting name="zone" serializeAs="String">
        <value>1</value>
      </setting>
      <setting name="workers" serializeAs="String">
        <value>5</value>
      </setting>
      <setting name="private_ip_netmask" serializeAs="String">
        <value>255.255.252.0</value>
      </setting>
      <setting name="RootDeviceReservedSpaceBytes" serializeAs="String">
        <value>4294967296</value>
      </setting>
      <setting name="hyperv_plugin_root" serializeAs="String">
        <value>..\..\..\..\..\</value>
      </setting>
      <setting name="RootDeviceName" serializeAs="String">
        <value>e:\</value>
      </setting>
      <setting name="private_mac_address" serializeAs="String">
        <value>101F742C6B88</value>
      </setting>
      <setting name="dom0MinMemory" serializeAs="String">
        <value>2048</value>
      </setting>
      <setting name="private_ip_address" serializeAs="String">
        <value>0.0.0.0</value>
      </setting>
    </CloudStack.Plugin.AgentShell.AgentSettings>
   </applicationSettings>
  <userSettings>
    <CloudStack.Plugin.AgentShell.AgentSettings>
      <setting name="local_secondary_storage_path" serializeAs="String">
        <value>c:\Secondary</value>
      </setting>
      <setting name="local_storage_path" serializeAs="String">
        <value>E:\Disks\Disks</value>
      </setting>
      <setting name="testLocalStorePath" serializeAs="String">
        <value>.\var\test\storagepool</value>
      </setting>
      <setting name="testS3Bucket" serializeAs="String">
        <value>testS3Bucket</value>
      </setting>
      <setting name="testS3Endpoint" serializeAs="String">
        <value>testS3Endpoint</value>
      </setting>
      <setting name="testS3AccessKey" serializeAs="String">
        <value>testS3AccessKey</value>
      </setting>
      <setting name="testS3SecretKey" serializeAs="String">
        <value>testS3SecretKey</value>
      </setting>
      <setting name="testS3TemplateName" serializeAs="String">
        <value>206-2-73592258-559a-3b38-8f66-b667aab143eb</value>
      </setting>
      <setting name="testLocalStoreUUID" serializeAs="String">
        <value>5fe2bad3-d785-394e-9949-89786b8a63d2</value>
      </setting>
      <setting name="testSystemVMTemplateName" serializeAs="String">
        <value>acton-systemvm-02062012.vhd.bz2</value>
      </setting>
      <setting name="testSystemVMTemplateNameNoExt" serializeAs="String">
        <value>acton-systemvm-02062012</value>
      </setting>
      <setting name="testCifsUrl" serializeAs="String">
        <value>cifs://10.70.1.1/secondary?user\u003dadministrator\u0026password\u003d1pass%40word1</value>
      </setting>
      <setting name="testCifsPath" serializeAs="String">
        <value>template/tmpl/2/201/61d5316a-3cc4-30cf-a557-78691ff5c143.vhd</value>
      </setting>
    </CloudStack.Plugin.AgentShell.AgentSettings>
  </userSettings>
</configuration>
