diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java index f3edc6967594..731c895d9022 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java @@ -159,6 +159,7 @@ private ExecutionResult applyConfigToVR(String routerAccessIp, ConfigItem c) { private ExecutionResult applyConfigToVR(String routerAccessIp, ConfigItem c, int timeout) { if (c instanceof FileConfigItem) { FileConfigItem configItem = (FileConfigItem)c; + return _vrDeployer.createFileInVR(routerAccessIp, configItem.getFilePath(), configItem.getFileName(), configItem.getFileContents()); } else if (c instanceof ScriptConfigItem) { ScriptConfigItem configItem = (ScriptConfigItem)c; diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java index f017384b63c3..3c34f15d4a8c 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/AbstractConfigItemFacade.java @@ -22,6 +22,9 @@ import java.util.Hashtable; import java.util.LinkedList; import java.util.List; +import java.util.UUID; + +import org.apache.log4j.Logger; import com.cloud.agent.api.BumpUpPriorityCommand; import com.cloud.agent.api.SetupGuestNetworkCommand; @@ -58,6 +61,8 @@ public abstract class AbstractConfigItemFacade { + private static final Logger s_logger = Logger.getLogger(AbstractConfigItemFacade.class); + private final static Gson gson; private static Hashtable, AbstractConfigItemFacade> flyweight = new Hashtable, AbstractConfigItemFacade>(); @@ -104,13 +109,25 @@ public static AbstractConfigItemFacade getInstance(final Class generateConfigItems(final ConfigBase configuration) { final List cfg = new LinkedList<>(); - final ConfigItem configFile = new FileConfigItem(VRScripts.CONFIG_PERSIST_LOCATION, destinationFile, gson.toJson(configuration)); + final String remoteFilename = appendUuidToJsonFiles(destinationFile); + s_logger.debug("Transformed filename " + destinationFile + " to " + remoteFilename); + + final ConfigItem configFile = new FileConfigItem(VRScripts.CONFIG_PERSIST_LOCATION, remoteFilename, gson.toJson(configuration)); cfg.add(configFile); - final ConfigItem updateCommand = new ScriptConfigItem(VRScripts.UPDATE_CONFIG, destinationFile); + final ConfigItem updateCommand = new ScriptConfigItem(VRScripts.UPDATE_CONFIG, remoteFilename); cfg.add(updateCommand); return cfg; diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 883c8c99429d..57ce60e84973 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -292,6 +292,9 @@ public ExecutionResult executeInVR(final String routerIp, final String script, f if (details == null) { details = parser.getLines(); } + + s_logger.debug("Executing script in VR " + script); + return new ExecutionResult(command.getExitValue() == 0, details); } @@ -300,6 +303,8 @@ public ExecutionResult createFileInVR(final String routerIp, final String path, final File permKey = new File("/root/.ssh/id_rsa.cloud"); String error = null; + s_logger.debug("Creating file in VR " + filename); + try { SshHelper.scpTo(routerIp, 3922, "root", permKey, null, path, content.getBytes(), filename, null); } catch (final Exception e) { diff --git a/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh b/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh index d0eb1fccf79e..07c617d40777 100755 --- a/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh +++ b/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh @@ -91,7 +91,7 @@ do done < $cfg #remove the configuration file, log file should have all the records as well -rm -f $cfg +mv $cfg /var/cache/cloud/processed/ # Flush kernel conntrack table log_it "VR config: Flushing conntrack table"