public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { ApplicationContainer container = ApplicationContainer.GetFromUuid(GearUuid); Manifest cartridge = container.GetCartridge(CartName); if (cartridge != null) { returnStatus.Output = "true"; returnStatus.ExitCode = 0; } else { returnStatus.Output = "false"; returnStatus.ExitCode = 1; } } catch (Exception ex) { Logger.Error("Error running has-app-cartridge-action command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.Output = "false"; returnStatus.ExitCode = 1; } return returnStatus; }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { ApplicationContainer container = ApplicationContainer.GetFromUuid(GearUuid); Manifest cartridge = container.GetCartridge(CartName); if (cartridge != null) { returnStatus.Output = "true"; returnStatus.ExitCode = 0; } else { returnStatus.Output = "false"; returnStatus.ExitCode = 1; } } catch (Exception ex) { Logger.Error("Error running has-app-cartridge-action command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.Output = "false"; returnStatus.ExitCode = 1; } return(returnStatus); }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { NodeConfig config = new NodeConfig(); string distrinctHome = Path.Combine(config.Get("GEAR_BASE_DIR"), ".settings"); if (!Directory.Exists(distrinctHome)) { Directory.CreateDirectory(distrinctHome); } File.WriteAllText(Path.Combine(distrinctHome, "district.info"), string.Format("#Do not modify manually!\nuuid='{0}'\nactive='{1}'\nfirst_uid={2}\nmax_uid={3}", Uuid, Active, FirstUid, MaxUid)); //TODO handle profiling returnStatus.Output = string.Format("created/updated district {0} with active = {1}, first_uid = {2}, max_uid = {3}", Uuid, Active, FirstUid, MaxUid); returnStatus.ExitCode = 0; } catch (Exception ex) { Logger.Error(ex.ToString()); returnStatus.Output = ex.ToString(); returnStatus.ExitCode = 255; } return(returnStatus); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); try { string output = string.Empty; string[] keys = null; if (!string.IsNullOrEmpty(WithKeys)) { keys = WithKeys.Split(' '); } Dictionary <string, string> variables = container.UserVarList(keys); status.Output = string.Format("{0}CLIENT_RESULT: {1}{0}", Environment.NewLine, JsonConvert.SerializeObject(variables)); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-user-var-list command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { NodeConfig config = new NodeConfig(); string distrinctHome = Path.Combine(config.Get("GEAR_BASE_DIR"), ".settings"); if (!Directory.Exists(distrinctHome)) { Directory.CreateDirectory(distrinctHome); } File.WriteAllText(Path.Combine(distrinctHome, "district.info"), string.Format("#Do not modify manually!\nuuid='{0}'\nactive='{1}'\nfirst_uid={2}\nmax_uid={3}", Uuid, Active, FirstUid, MaxUid)); //TODO handle profiling returnStatus.Output = string.Format("created/updated district {0} with active = {1}, first_uid = {2}, max_uid = {3}", Uuid, Active, FirstUid, MaxUid); returnStatus.ExitCode = 0; } catch (Exception ex) { Logger.Error(ex.ToString()); returnStatus.Output = ex.ToString(); returnStatus.ExitCode = 255; } return returnStatus; }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { NodeConfig config = new NodeConfig(); string distrinctInfoPath = Path.Combine(config.Get("GEAR_BASE_DIR"), ".settings", "district.info"); string districtInfo = File.ReadAllText(distrinctInfoPath); districtInfo = Regex.Replace(districtInfo, "first_uid=\\d+", string.Format("first_uid={0}", FirstUid), RegexOptions.Multiline); districtInfo = Regex.Replace(districtInfo, "max_uid=\\d+", string.Format("max_uid={0}", MaxUid), RegexOptions.Multiline); File.WriteAllText(distrinctInfoPath, districtInfo); //TODO handle profiling returnStatus.Output = string.Format("updated district uid limits with first_uid = {0}, max_uid = {1}", FirstUid, MaxUid); returnStatus.ExitCode = 0; } catch (Exception ex) { Logger.Error(ex.ToString()); returnStatus.Output = ex.ToString(); returnStatus.ExitCode = 255; } return returnStatus; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); RubyHash options = new RubyHash(); options["all"] = All; if (ParallelConcurrencyRatio != 0.0) { options["parallelConcurrencyRatio"] = ParallelConcurrencyRatio; } status.Output = container.Restart(CartName, options); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-restart command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { string gearDir = NodeConfig.Values["GEAR_BASE_DIR"]; int gearCount = Directory.GetDirectories(gearDir).Length; if (gearCount == 0) { status.Output = "OK: No apps found. Nothing to monitor."; } else { status.Output = String.Format("{0} running, 0 idled", gearCount); } status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-idler-start command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); try { List <string> gears = null; List <string> keys = WithKeys.Split(' ').ToList(); if (!string.IsNullOrEmpty(WithGears)) { gears = new List <string>(); JArray gearsObj = (JArray)JsonConvert.DeserializeObject(WithGears); foreach (var gearObj in gearsObj) { gears.Add(gearObj.ToString()); } } status.Output = container.UserVarRemove(keys, gears); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-user-var-remove command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); try { List<string> gears = null; List<string> keys = WithKeys.Split(' ').ToList(); if (!string.IsNullOrEmpty(WithGears)) { gears = new List<string>(); JArray gearsObj = (JArray)JsonConvert.DeserializeObject(WithGears); foreach (var gearObj in gearsObj) { gears.Add(gearObj.ToString()); } } status.Output = container.UserVarRemove(keys, gears); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-user-var-remove command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
protected override void ProcessRecord() { ReturnStatus returnStatus = new ReturnStatus(); try { ApplicationContainer container = ApplicationContainer.GetFromUuid(GearUuid); Manifest cartridge = container.GetCartridge(CartName); if (cartridge != null) { returnStatus.Output = "true"; returnStatus.ExitCode = 0; } else { returnStatus.Output = "false"; returnStatus.ExitCode = 1; } } catch (Exception ex) { Logger.Error("Error running has-app-cartridge-action command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.Output = "false"; returnStatus.ExitCode = 1; } this.WriteObject(returnStatus); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); try { string output = string.Empty; string[] keys = null; if (!string.IsNullOrEmpty(WithKeys)) { keys = WithKeys.Split(' '); } Dictionary<string, string> variables = container.UserVarList(keys); status.Output = string.Format("{0}CLIENT_RESULT: {1}{0}", Environment.NewLine, JsonConvert.SerializeObject(variables)); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-user-var-list command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); RubyHash options = new RubyHash(); options["all"] = All; if (ParallelConcurrencyRatio != 0.0) { options["parallelConcurrencyRatio"] = ParallelConcurrencyRatio; } status.Output = container.Restart(CartName, options); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-restart command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { NodeConfig config = new NodeConfig(); string distrinctInfoPath = Path.Combine(config.Get("GEAR_BASE_DIR"), ".settings", "district.info"); string districtInfo = File.ReadAllText(distrinctInfoPath); districtInfo = Regex.Replace(districtInfo, "first_uid=\\d+", string.Format("first_uid={0}", FirstUid), RegexOptions.Multiline); districtInfo = Regex.Replace(districtInfo, "max_uid=\\d+", string.Format("max_uid={0}", MaxUid), RegexOptions.Multiline); File.WriteAllText(distrinctInfoPath, districtInfo); //TODO handle profiling returnStatus.Output = string.Format("updated district uid limits with first_uid = {0}, max_uid = {1}", FirstUid, MaxUid); returnStatus.ExitCode = 0; } catch (Exception ex) { Logger.Error(ex.ToString()); returnStatus.Output = ex.ToString(); returnStatus.ExitCode = 255; } return(returnStatus); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { string gearDir = NodeConfig.Values["GEAR_BASE_DIR"]; int gearCount = Directory.GetDirectories(gearDir).Length; if (gearCount == 0) { status.Output = "OK: No apps found. Nothing to monitor."; } else { status.Output = String.Format("{0} running, 0 idled", gearCount); } status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-idler-start command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); List <SshKey> keys = new List <SshKey>(); if (!string.IsNullOrWhiteSpace(WithSshKeys)) { JArray varsArray = (JArray)JsonConvert.DeserializeObject(WithSshKeys); keys = varsArray.ToObject <List <SshKey> >(); } container.ReplaceSshKeys(keys); status.ExitCode = 0; status.Output = string.Empty; } catch (Exception ex) { Logger.Error("Error running oo-authorized-ssh-keys-replace command: {0} - {1}", ex.Message, ex.StackTrace); status.ExitCode = 1; status.Output = ex.Message; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); List<SshKey> keys = new List<SshKey>(); if (!string.IsNullOrWhiteSpace(WithSshKeys)) { JArray varsArray = (JArray)JsonConvert.DeserializeObject(WithSshKeys); keys = varsArray.ToObject<List<SshKey>>(); } container.ReplaceSshKeys(keys); status.ExitCode = 0; status.Output = string.Empty; } catch(Exception ex) { Logger.Error("Error running oo-authorized-ssh-keys-replace command: {0} - {1}", ex.Message, ex.StackTrace); status.ExitCode = 1; status.Output = ex.Message; } return status; }
public ReturnStatus Execute() { status = new ReturnStatus(); status.ExitCode = 0; LoadNodeConf(); FindExtNetDev(); LoadUsers(); if (RunUpgradeChecks) { CheckUpgrades(); } else { //ValidateEnv(); CheckNodePublicResolution(); //CheckSelinux(); //CheckPackages(); CheckServices(); //CheckServiceContexts(); //CheckSemaphores(); //CheckCgroupConfig(); //CheckCgroupProcs(); //CheckTcConfig(); //CheckQuotas(); CheckUsers(); CheckAppDirs(); //CheckSystemHttpdConfigs(); CheckCartridgeRepository(); } return status; }
protected override void ProcessRecord() { status = new ReturnStatus(); status.ExitCode = 0; LoadNodeConf(); FindExtNetDev(); LoadUsers(); if (RunUpgradeChecks) { CheckUpgrades(); } else { //ValidateEnv(); CheckNodePublicResolution(); //CheckSelinux(); //CheckPackages(); CheckServices(); //CheckServiceContexts(); //CheckSemaphores(); //CheckCgroupConfig(); //CheckCgroupProcs(); //CheckTcConfig(); //CheckQuotas(); CheckUsers(); CheckAppDirs(); //CheckSystemHttpdConfigs(); CheckCartridgeRepository(); } this.WriteObject(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { Dictionary <string, string> envVars = new Dictionary <string, string>(); //string homeDir = Environment.GetEnvironmentVariable("HOME"); string homeDir = Path.Combine(@"C:\openshift\gears", Uuid); UserShellTrap.SetupGearEnv(envVars, homeDir); string userHomeDir = envVars.ContainsKey("OPENSHIFT_HOMEDIR") && Directory.Exists(envVars["OPENSHIFT_HOMEDIR"]) ? envVars["OPENSHIFT_HOMEDIR"] : string.Empty; var prison = Prison.Prison.LoadPrisonAndAttach(Guid.Parse(Uuid.PadLeft(32, '0'))); UserShellTrap.FixHomeDir(userHomeDir, prison.User.Username, Uuid); if (Directory.Exists(Path.Combine(homeDir, "mssql"))) { string[] instancefolderinfo = Directory.GetDirectories(Path.Combine(homeDir, "mssql", "bin")).First().Split('.'); instancefolderinfo[0] = instancefolderinfo[0].Substring(instancefolderinfo[0].LastIndexOf('\\') + 1); Logger.Info("Reconfiguring registry after move with parameters {0},{1} for user {2}", instancefolderinfo[0], instancefolderinfo[1], prison.User.Username); switch (instancefolderinfo[0]) { case "MSSQL11": { Prison.MsSqlInstanceTool.ConfigureMsSqlInstanceRegistry(prison, instancefolderinfo[0], "MSSQLSERVER2012"); break; } case "MSSQL10_50": { Prison.MsSqlInstanceTool.ConfigureMsSqlInstanceRegistry(prison, instancefolderinfo[0], "MSSQLSERVER"); break; } default: { throw new Exception("Unsupported MSSQL version!"); } } foreach (string file in Directory.GetFiles(Path.Combine(homeDir, "mssql", "bin", instancefolderinfo[0] + "." + instancefolderinfo[1], "mssql", "DATA"))) { FileSecurity fSecurity = File.GetAccessControl(file); fSecurity.AddAccessRule(new FileSystemAccessRule(prison.User.Username, FileSystemRights.FullControl , AccessControlType.Allow)); File.SetAccessControl(file, fSecurity); } } status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-admin-restore-acls command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { Dictionary<string, string> envVars = new Dictionary<string, string>(); //string homeDir = Environment.GetEnvironmentVariable("HOME"); string homeDir = Path.Combine(@"C:\openshift\gears", Uuid); UserShellTrap.SetupGearEnv(envVars, homeDir); string userHomeDir = envVars.ContainsKey("OPENSHIFT_HOMEDIR") && Directory.Exists(envVars["OPENSHIFT_HOMEDIR"]) ? envVars["OPENSHIFT_HOMEDIR"] : string.Empty; var prison = Prison.Prison.LoadPrisonAndAttach(PrisonIdConverter.Generate(Uuid)); UserShellTrap.FixHomeDir(userHomeDir, prison.User.Username, Uuid); if (Directory.Exists(Path.Combine(homeDir, "mssql"))) { string[] instancefolderinfo=Directory.GetDirectories(Path.Combine(homeDir,"mssql","bin")).First().Split('.'); instancefolderinfo[0] = instancefolderinfo[0].Substring(instancefolderinfo[0].LastIndexOf('\\')+1); Logger.Info("Reconfiguring registry after move with parameters {0},{1} for user {2}", instancefolderinfo[0], instancefolderinfo[1], prison.User.Username); switch (instancefolderinfo[0]) { case "MSSQL11": { Prison.MsSqlInstanceTool.ConfigureMsSqlInstanceRegistry(prison, instancefolderinfo[0], "MSSQLSERVER2012"); break; } case "MSSQL10_50": { Prison.MsSqlInstanceTool.ConfigureMsSqlInstanceRegistry(prison, instancefolderinfo[0], "MSSQLSERVER"); break; } default:{throw new Exception("Unsupported MSSQL version!");} } foreach (string file in Directory.GetFiles(Path.Combine(homeDir, "mssql", "bin",instancefolderinfo[0]+"."+instancefolderinfo[1],"mssql","DATA"))) { FileSecurity fSecurity = File.GetAccessControl(file); fSecurity.AddAccessRule(new FileSystemAccessRule(prison.User.Username, FileSystemRights.FullControl , AccessControlType.Allow)); File.SetAccessControl(file, fSecurity); } } status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-admin-restore-acls command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
protected override void ProcessRecord() { ReturnStatus returnStatus = new ReturnStatus(); try { returnStatus.ExitCode = 0; switch (Action.ToLower()) { case "install": { Logger.Debug("Cartridge repository action install"); CartridgeRepository.Instance.Install(Path); break; } case "erase": { Logger.Debug("Cartridge repository action erase"); CartridgeRepository.Instance.Erase(Name, Version, CartridgeVersion); break; } case "list": { Logger.Debug("Cartridge repository action list"); returnStatus.Output = CartridgeRepository.Instance.ToString(); break; } default: { returnStatus.Output = string.Format("{0} is not implemented. openshift.ddl may be out of date", Action); returnStatus.ExitCode = 2; break; } } } catch (Exception ex) { Logger.Error("Error running cartridge-repository-actions command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.Output = string.Format("{0} failed for {1} {2}", Action, Path, ex.Message); returnStatus.ExitCode = 4; } WriteObject(returnStatus); }
protected override void ProcessRecord() { ReturnStatus status = new ReturnStatus(); try { status.Output = Node.GetCartridgeList(WithDescriptors, Porcelain, false); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-cartridge-list command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } this.WriteObject(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, new Hourglass(235)); status.Output = container.PostConfigure(CartName, WithTemplateGitUrl); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-post-configure command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); status.Output = container.Reload(CartName); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-reload command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = string.Format("{0}CLIENT_RESULT: {1}{0}", Environment.NewLine, container.State.Value().ToLower()); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-app-state-show command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.AddSshKey(WithSshKey, WithSshKeyType, WithSshKeyComment); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-authorized-ssh-key-add command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { status.Output = Node.GetCartridgeList(WithDescriptors, Porcelain, false); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-cartridge-list command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { returnStatus.ExitCode = 0; switch (Action.ToLower()) { case "install": { Logger.Debug("Cartridge repository action install"); CartridgeRepository.Instance.Install(Path); break; } case "erase": { Logger.Debug("Cartridge repository action erase"); CartridgeRepository.Instance.Erase(Name, Version, CartridgeVersion); break; } case "list": { Logger.Debug("Cartridge repository action list"); returnStatus.Output = CartridgeRepository.Instance.ToString(); break; } default: { returnStatus.Output = string.Format("{0} is not implemented. openshift.ddl may be out of date", Action); returnStatus.ExitCode = 2; break; } } } catch (Exception ex) { Logger.Error("Error running cartridge-repository-actions command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.Output = string.Format("{0} failed for {1} {2}", Action, Path, ex.Message); returnStatus.ExitCode = 4; } return returnStatus; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.CreatePublicEndpoints(this.CartName); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-expose-port command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); container.RemoveEnvVar(WithKey); status.Output = string.Empty; status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-env-var-remove command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = -1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = ApplicationContainer.GetFromUuid(Uuid); status.Output = container.GetQuota(CartName); status.ExitCode = 0; } catch(Exception ex) { Logger.Error("Error running oo-get-quota command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { Logger.Debug(string.Format("Running Get-Gear-Envs-Action for {0}", Uuid)); string containerDir = ApplicationContainer.GetFromUuid(Uuid).ContainerDir; Dictionary<string, string> envVars = Environ.ForGear(containerDir); returnStatus.Output = JsonConvert.SerializeObject(envVars); Logger.Debug(string.Format("Output for Get-Gear-Envs-Action{0} ", returnStatus.Output)); returnStatus.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running get-gear-envs-actions command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.ExitCode = 1; } return returnStatus; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); status.Output = container.Configure(CartName, WithTemplateGitUrl, WithCartridgeManifest, bool.Parse(WithExposePorts)); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-configure command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
protected override void ProcessRecord() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.AddSshKey(WithSshKey, WithSshKeyType, WithSshKeyComment); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-authorized-ssh-key-add command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } this.WriteObject(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.ConnectorExecute(CartName, HookName, PublishingCartName, ConnectionType, InputArgs); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-connector-execute command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); status.Output = container.Destroy(); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-app-destroy command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.AddSshKey(WithSshKey, WithSshKeyType, WithSshKeyComment); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-authorized-ssh-key-add command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); status.Output = string.Format("{0}CLIENT_RESULT: {1}{0}", Environment.NewLine, container.State.Value().ToLower()); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-app-state-show command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
protected override void ProcessRecord() { ReturnStatus status = new ReturnStatus(); ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); try { status.Output = container.Start(CartName); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-start command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } this.WriteObject(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, new Hourglass(235)); status.Output = container.PostConfigure(CartName, WithTemplateGitUrl); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-post-configure command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = ApplicationContainer.GetFromUuid(Uuid); status.Output = container.GetQuota(CartName); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-get-quota command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.ForceStop(); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-force-stop command: {0} - {1}", ex.Message, ex.StackTrace); status.ExitCode = 1; status.Output = ex.Message; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.AddBrokerAuth(WithIv, WithToken); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-broker-auth-key-add command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); status.Output = container.Configure(CartName, WithTemplateGitUrl, WithCartridgeManifest, bool.Parse(WithExposePorts)); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-configure command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { Logger.Debug(string.Format("Running Get-Gear-Envs-Action for {0}", Uuid)); string containerDir = ApplicationContainer.GetFromUuid(Uuid).ContainerDir; Dictionary <string, string> envVars = Environ.ForGear(containerDir); returnStatus.Output = JsonConvert.SerializeObject(envVars); Logger.Debug(string.Format("Output for Get-Gear-Envs-Action{0} ", returnStatus.Output)); returnStatus.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running get-gear-envs-actions command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.ExitCode = 1; } return(returnStatus); }
protected override void ProcessRecord() { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); ReturnStatus status = new ReturnStatus(); try { container.RemoveEnvVar(WithKey); status.Output = string.Empty; status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-env-var-remove command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = -1; } this.WriteObject(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); status.Output = container.ConnectorExecute(CartName, HookName, PublishingCartName, ConnectionType, InputArgs); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-connector-execute command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); container.RemoveEnvVar(WithKey); status.Output = string.Empty; status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-env-var-remove command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = -1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.ForceStop(); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-force-stop command: {0} - {1}", ex.Message, ex.StackTrace); status.ExitCode = 1; status.Output = ex.Message; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.RemoveBrokerAuth(); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-broker-auth-key-remove command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null, WithUid); RubyHash options = new RubyHash(); options["deployment_id"] = WithDeploymentId; status.Output = container.Activate(options); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-activate command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
protected override void ProcessRecord() { ReturnStatus status = new ReturnStatus(); ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); try { RubyHash options = new RubyHash(); options["deployment_id"] = DeploymentId; status.Output = container.Activate(options); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-activate command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } this.WriteObject(status); }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { string token = null; if (!string.IsNullOrEmpty(WithSecretToken)) token = WithSecretToken; ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); status.Output = container.Create(token); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-app-create command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); try { ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); container.SetAutoDeploy(AutoDeploy); container.SetDeploymentBranch(DeploymentBranch); container.SetKeepDeployments(KeepDeployments); container.SetDeploymentType(DeploymentType); status.ExitCode = 0; status.Output = string.Empty; } catch (Exception ex) { Logger.Error("Error running oo-update-configuration command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { ReturnStatus status = new ReturnStatus(); ApplicationContainer container = new ApplicationContainer(WithAppUuid, WithContainerUuid, null, WithAppName, WithContainerName, WithNamespace, null, null, null); try { Dictionary<string, string> variables = new Dictionary<string, string>(); if (!string.IsNullOrWhiteSpace(WithVariables)) { foreach (string variable in WithVariables.Trim().Split(' ')) { variables.Add(variable.Split('=')[0].Trim(), variable.Split('=')[1].Trim()); } } List<string> gears = new List<string>(); if (!string.IsNullOrEmpty(WithGears)) { gears = this.WithGears.Split(';').ToList(); } status.Output = container.AddUserVar(variables, gears); status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running oo-user-var-add command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = ex.ToString(); status.ExitCode = 1; } return status; }
public ReturnStatus Execute() { Logger.Debug("Running gear command: '{0}'", Environment.CommandLine); ReturnStatus status = new ReturnStatus(); try { string appUuid = Environment.GetEnvironmentVariable("OPENSHIFT_APP_UUID"); string gearUuid = Environment.GetEnvironmentVariable("OPENSHIFT_GEAR_UUID"); string appName = Environment.GetEnvironmentVariable("OPENSHIFT_APP_NAME"); string gearName = Environment.GetEnvironmentVariable("OPENSHIFT_GEAR_NAME"); string nmSpace = Environment.GetEnvironmentVariable("OPENSHIFT_NAMESPACE"); NodeConfig config = new NodeConfig(); EtcUser etcUser = new Etc(config).GetPwanam(gearUuid); container = new ApplicationContainer(appUuid, gearUuid, etcUser, appName, gearName, nmSpace, null, null, null); repo = new ApplicationRepository(container); if (Prereceive) { Dictionary<string, object> options = new Dictionary<string, object>(); options["init"] = Init; options["hotDeploy"] = true; options["forceCleanBuild"] = true; options["ref"] = container.DetermineDeploymentRef(); container.PreReceive(options); } else if (Postreceive) { RubyHash options = new RubyHash(); options["init"] = Init; options["all"] = true; options["reportDeployment"] = true; options["ref"] = container.DetermineDeploymentRef(); container.PostReceive(options); } else if (Build) { string ciRepoPath = Path.Combine(Environment.GetEnvironmentVariable("OPENSHIFT_REPO_DIR"), ".git"); string repoDir = null; if(Directory.Exists(ciRepoPath)) { repoDir = ciRepoPath; } repo = new ApplicationRepository(this.container, repoDir); string gitRef = null; bool archive =false; if(repoDir == null) { gitRef = this.container.DetermineDeploymentRef(this.RefId); archive = true; } else { gitRef = Environment.GetEnvironmentVariable("GIT_BRANCH"); } if(!ValidGitRef(gitRef)) { throw new Exception(string.Format("Git ref {0} is invalid", gitRef)); } if(archive) { repo.Archive(Environment.GetEnvironmentVariable("OPENSHIFT_REPO_DIR"), gitRef); } RubyHash options = new RubyHash(); options["ref"] = gitRef; options["hot_deploy"] = repo.FileExists(HOT_DEPLOY_MARKER, gitRef); options["force_clean_build"] = repo.FileExists(FORCE_CLEAN_BUILD_MARKER, gitRef); options["git_repo"] = repo; Console.WriteLine(container.Build(options)); } else if (Prepare) { throw new NotImplementedException(); } else if (Deploy) { if (Environment.GetEnvironmentVariable("OPENSHIFT_DEPLOYMENT_TYPE") == "binary") { throw new Exception("OPENSHIFT_DEPLOYMENT_TYPE is 'binary' - git-based deployments are disabled."); } string refToDeploy = container.DetermineDeploymentRef(this.DeployRefId); if (!ValidGitRef(refToDeploy)) { throw new Exception("Git ref " + refToDeploy + " is not valid"); } RubyHash options = new RubyHash(); options["hot_deploy"] = this.HotDeploy; options["force_clean_build"] = this.ForceCleanBuild; options["ref"] = this.DeployRefId; options["report_deployments"] = true; options["all"] = true; container.Deploy(options); } else if (Activate) { status.Output = container.Activate(new RubyHash { {"deployment_id", this.DeploymentId}, {"post_install", this.PostInstall.ToBool()}, {"all", this.All.ToBool()}, {"rotate", this.Rotation && !this.NoRotation}, {"report_deployments", true}, {"out", !this.AsJson.ToBool()} }); } status.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running gear command: {0} - {1}", ex.Message, ex.StackTrace); status.Output = string.Format("{0}", ex.Message, ex.StackTrace); status.ExitCode = 255; } return status; }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); CartridgeRepository repository = CartridgeRepository.Instance; if(string.IsNullOrEmpty(Action)) { returnStatus.Output = "Usage: --action ACTION [--recursive] [--source directory] [--name NAME --version VERSION --cartridge_version VERSION]"; returnStatus.ExitCode = 1; return returnStatus; } try { switch (Action.ToLower()) { case "install": { string[] dirs = null; if (Recursive) { Directory.GetDirectories(Source); } else { dirs = new string[] { Source }; } bool success = true; foreach (string dir in dirs) { try { repository.Install(dir); } catch (Exception e) { success = false; Console.Error.WriteLine(string.Format("install failed for {0}: {1}", dir, e.Message)); if (D) Console.Error.WriteLine(e.StackTrace); } } if (success) returnStatus.Output = "succeeded"; else returnStatus.Output = "installation failed"; break; } case "erase": { try { repository.Erase(Name, Version, CartridgeVersion); returnStatus.Output = "succeeded"; } catch (KeyNotFoundException e) { returnStatus.Output = "requested cartridge does not exist: " + e.ToString(); } catch (Exception e) { returnStatus.Output = "Couldn't erase cartridge: " + e.ToString(); } break; } case "list": { if (D) { returnStatus.Output = repository.Inspect(); } else { returnStatus.Output = repository.ToString(); } break; } default: { break; } } returnStatus.ExitCode = 0; } catch (Exception ex) { returnStatus.ExitCode = 1; returnStatus.Output = ex.Message; if (D) Console.Error.WriteLine(ex.ToString()); } return returnStatus; }
public ReturnStatus Execute() { ReturnStatus returnStatus = new ReturnStatus(); try { NodeConfig config = new NodeConfig(); string gearPath = config.Get("GEAR_BASE_DIR"); string[] folders = Directory.GetDirectories(gearPath); List<RubyHash> endpoints = new List<RubyHash>(); RubyHash outputHash = new RubyHash(); foreach (string folder in folders) { string folderName = Path.GetFileName(folder); if (!folderName.StartsWith(".")) { ApplicationContainer container = ApplicationContainer.GetFromUuid(folderName); Dictionary<string, string> env = Environ.ForGear(container.ContainerDir); container.Cartridge.EachCartridge(cart => { cart.Endpoints.ForEach(endpoint => { RubyHash endpointHash = new RubyHash(); endpointHash.Add("cartridge_name", string.Format("{0}-{1}", cart.Name, cart.Version)); if (env.ContainsKey(endpoint.PublicPortName)) { endpointHash.Add("external_port", env[endpoint.PublicPortName]); } else { endpointHash.Add("external_port", null); } endpointHash.Add("internal_address", env[endpoint.PrivateIpName]); endpointHash.Add("internal_port", endpoint.PrivatePort); endpointHash.Add("protocols", endpoint.Protocols); endpointHash.Add("type", new List<string>()); if (cart.WebProxy) { endpointHash["protocols"] = container.Cartridge.GetPrimaryCartridge().Endpoints.First().Protocols; endpointHash["type"] = new List<string>() { "load_balancer" }; } else if (cart.WebFramework) { endpointHash["type"] = new List<string>() { "web_framework" }; } else if (cart.Categories.Contains("database")) { endpointHash["type"] = new List<string>() { "web_framework" }; } else if (cart.Categories.Contains("plugin")) { endpointHash["type"] = new List<string>() { "plugin" }; } else { endpointHash["type"] = new List<string>() { "other" }; } if (endpoint.Mappings != null && endpoint.Mappings.Count > 0) { List<RubyHash> mappingsList = new List<RubyHash>(); foreach (Uhuru.Openshift.Common.Models.Endpoint.Mapping mapping in endpoint.Mappings) { RubyHash mappings = new RubyHash(); mappings.Add("frontend", mapping.Frontend); mappings.Add("backend", mapping.Backend); mappingsList.Add(mappings); } endpointHash.Add("mappings", mappingsList); } endpoints.Add(endpointHash); }); }); if (endpoints.Count > 0) { outputHash.Add(folderName, endpoints); } } } string output = Newtonsoft.Json.JsonConvert.SerializeObject(outputHash); returnStatus.Output = output; returnStatus.ExitCode = 0; } catch (Exception ex) { Logger.Error("Error running get-all-gears-endpoints-action command: {0} - {1}", ex.Message, ex.StackTrace); returnStatus.Output = ex.ToString(); returnStatus.ExitCode = 1; } return returnStatus; }
static int Main(string[] args) { // trim all args first args = args.Select(arg => arg.Trim()).ToArray(); ReturnStatus status = new ReturnStatus(); try { Logger.Debug("Running {0}", string.Join(" ", args)); string method = args[0]; string className = string.Format("{0}.{1}, {2}", "Uhuru.Openshift.Cmdlets", Regex.Replace(method, @"^(OO|[A-Z])|_[A-Z]|-[A-Z]", m => m.ToString().ToUpper(), RegexOptions.IgnoreCase).Replace("-", "_").Trim(), typeof(ReturnStatus).Assembly.GetName()); Type t = Type.GetType(className); if (t != null) { var instance = Activator.CreateInstance(t); Dictionary<string, object> arguments = null; if (args.Length == 1) { string arg = Console.ReadLine(); arguments = JsonConvert.DeserializeObject<RubyHash>(arg); } else { string[] arg = args.Skip(1).ToArray(); arguments = new Arguments(arg).ToDictionary(pair => pair.Key, pair => (object)pair.Value); } switch (method.ToLower()) { case "gear": { arguments[args[1]] = true; switch (args[1].ToLower()) { case "activate": { arguments["DeploymentId"] = args[2]; break; } case "build": { if (args.Length > 2) { arguments["RefId"] = args[2]; } break; } default: break; } break; } case "oo-admin-ctl-gears": { arguments["Operation"] = args[1]; arguments["UUID"] = args.Skip(2).ToArray(); break; } default: { break; } } SetInstanceFields(instance, arguments); MethodInfo process = t.GetMethod("Execute"); status = (ReturnStatus)process.Invoke(instance, new object[] { }); } else { status.Output = "Command not found"; status.ExitCode = 1; } } catch(Exception ex) { status.Output = ex.ToString(); status.ExitCode = 1; } Logger.Debug("Finished running {0}. Output: {1}", string.Join(" ", args), status.Output); Console.WriteLine(status.Output); return status.ExitCode; }