public static void Main(string[] args) { var command = string.Empty; // Initialize Infra Controller string basePath = System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().Location); var infraControl = new InfraControl(basePath); while (command != "exit") { Console.Clear(); Console.WriteLine("Enter your choice:"); Console.WriteLine("1 - Provider"); Console.WriteLine("2 - Environments"); Console.WriteLine("3 - Virtual Machines"); Console.WriteLine("4 - Database"); command = Console.ReadLine(); switch (command) { case "1": // Provider { command = ProviderSelection(); ProviderAction(infraControl, command); }; break; // Environments case "2": { command = EnvironmentSelection(); EnvironmentAction(infraControl, command); }; break; // Virtual Machines case "3": { command = VirtualMachineSelection(); VirtualMachineAction(infraControl, command); }; break; case "4": // Database { command = DatabaseSelection(); DatabaseAction(infraControl, command); }; break; default: Console.WriteLine("Not a command"); break; } command = string.Empty; Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } Console.WriteLine("Bye!"); }
private static void ProviderAction(InfraControl IC, string action) { var input = string.Empty; switch (action) { case "1": // Create provider { Console.WriteLine("Enter provider name:"); input = Console.ReadLine(); IC.CreateProvider(input); }; break; case "2": // List all providers { IC.ShowProviders(); }; break; case "3": { var provider = GetProviderName(); if (IC.ProviderExist(provider)) { IC.DeleteProvider(provider); return; } Console.WriteLine("Provider {0:G} does not exist.", provider); }; break; case "4": { Console.WriteLine("Action cancelled."); }; break; default: return; } }
private static void EnvironmentAction(InfraControl IC, string action) { var input = string.Empty; var provider = string.Empty; switch (action) { case "1": // Create environmont { provider = GetProviderName(); if (IC.ProviderExist(provider)) { // Provider exist then create environment // Ask for environment type input = WhichEnvironment(); if ((input.ToLower() == "u") || (input.ToLower() == "s") || (input.ToLower() == "p")) { CloudLibrary.InfraGlobal.EnvironmentTypes Env = 0; switch (input.ToLower()) { case "u": Env = CloudLibrary.InfraGlobal.EnvironmentTypes.UAT; break; case "s": Env = CloudLibrary.InfraGlobal.EnvironmentTypes.Staging; break; case "p": Env = CloudLibrary.InfraGlobal.EnvironmentTypes.Production; break; } IC.CloudServices.Find(x => x.Name == provider).CreateEnvironment(Env); } return; } Console.WriteLine("Provider {0:G} does not exist.", provider); }; break; case "2": // List all environments { provider = GetProviderName(); if (IC.ProviderExist(provider)) { IC.ShowEnvironments(provider); return; } Console.WriteLine("Provider {0:G} does not exist!", provider); }; break; case "3": // Remove environment { provider = GetProviderName(); if (IC.ProviderExist(provider)) { // Provider exist then create environment // Ask for environment type input = WhichEnvironment(); if ((input.ToLower() == "u") || (input.ToLower() == "s") || (input.ToLower() == "p")) { CloudLibrary.InfraGlobal.EnvironmentTypes Env = 0; switch (input.ToLower()) { case "u": Env = CloudLibrary.InfraGlobal.EnvironmentTypes.UAT; break; case "s": Env = CloudLibrary.InfraGlobal.EnvironmentTypes.Staging; break; case "p": Env = CloudLibrary.InfraGlobal.EnvironmentTypes.Production; break; } IC.DeleteEnvironment(provider, Env); } return; } Console.WriteLine("Provider {0:G} does not exist.", provider); }; break; case "4": { Console.WriteLine("Action cancelled."); }; break; default: return; } }
private static void VirtualMachineAction(InfraControl IC, string action) { var input = string.Empty; var provider = string.Empty; InfraGlobal.EnvironmentTypes environment = InfraGlobal.EnvironmentTypes._; switch (action) { case "1": // Add virtual machine { provider = GetProviderName(); if (IC.ProviderExist(provider)) { // Provider exist then find envronment // Ask for environment type environment = SelectEnvironment(); if (environment == 0) { return; // Cancelled } if (environment > 0) { if (IC.EnvironmentExist(provider, environment)) //if (IC.CloudServices.Find(x => x.Name == provider) // .Environments.Exists(y => y.Type == environment)) { // Ask for VM details var ID = GetEnvironmentID(); if (IC.EnvironmentExistByID(provider, environment, ID)) { var os = SelectOS(); if (os == "x") { return; } var cpu = SetValue(); if (cpu < 1) { return; } var memory = SetValue(); if (memory < 1) { return; } InfraGlobal.OSPlatform finalOs = InfraGlobal.OSPlatform._; switch (os) { case "l": finalOs = InfraGlobal.OSPlatform.Linux; break; case "w": finalOs = InfraGlobal.OSPlatform.Windows; break; } // Create virtual machine IC.CloudServices.Find(x => x.Name == provider) .Environments.Find(y => y.Type == environment) .AddVirtualMachine(finalOs, cpu, memory); return; } Console.WriteLine("Environment ID {0:G} does not exist.", ID); } Console.WriteLine("Environment {0:G} does not exist.", environment); } return; } Console.WriteLine("Provider {0:G} does not exist.", provider); }; break; case "2": // List all virtual machines { provider = GetProviderName(); if (IC.ProviderExist(provider)) { InfraGlobal.EnvironmentTypes environ = SelectEnvironment(); if (IC.EnvironmentExist(provider, environ)) { var ID = GetEnvironmentID(); if (IC.EnvironmentExistByID(provider, environ, ID)) { IC.ShowVirtualMachines(provider, environ, ID); } return; } Console.WriteLine("Environment does not exist!"); return; } Console.WriteLine("Provider {0:G} does not exist!", provider); }; break; case "3": // Remove virtual machine { provider = GetProviderName(); if (IC.ProviderExist(provider)) { // Provider exist then find envronment // Ask for environment type environment = SelectEnvironment(); if (environment == 0) { return; // Cancelled } if (environment > 0) { if (IC.EnvironmentExist(provider, environment)) //if (IC.CloudServices.Find(x => x.Name == provider) // .Environments.Exists(y => y.Type == environment)) { // Ask for VM details var ID = GetEnvironmentID(); if (IC.EnvironmentExistByID(provider, environment, ID)) { var vmID = GetVMID(); if (IC.VirtualMachineExist(provider, environment, ID, vmID)) { IC.DeleteVirtualMachine(provider, environment, ID, vmID); } Console.WriteLine("VM ID {0:G} does not exist.", vmID); return; } } Console.WriteLine("Environment {0:G} does not exist.", environment); } return; } Console.WriteLine("Provider {0:G} does not exist.", provider); }; break; case "4": { Console.WriteLine("Action cancelled."); }; break; default: return; } }
// Action functions private static void DatabaseAction(InfraControl IC, string action) { var input = string.Empty; var provider = string.Empty; InfraGlobal.EnvironmentTypes environment = InfraGlobal.EnvironmentTypes._; switch (action) { case "1": // Add database { provider = GetProviderName(); if (IC.ProviderExist(provider)) { // Provider exist then find envronment // Ask for environment type environment = SelectEnvironment(); if (environment == 0) { return; // Cancelled } if (environment > 0) { if (IC.EnvironmentExist(provider, environment)) //if (IC.CloudServices.Find(x => x.Name == provider) // .Environments.Exists(y => y.Type == environment)) { var ID = GetEnvironmentID(); if (IC.EnvironmentExistByID(provider, environment, ID)) { InfraGlobal.DatabaseTypes database = SelectDatabase(); if (database == 0) { return; // Cancelled } if (database > 0) { // Add database IC.CreateDatabase(provider, environment, ID, database); } } return; } Console.WriteLine("Environment {0:G} does not exist.", environment); } return; } Console.WriteLine("Provider {0:G} does not exist.", provider); }; break; case "2": // List all database { provider = GetProviderName(); if (IC.ProviderExist(provider)) { InfraGlobal.EnvironmentTypes environ = SelectEnvironment(); if (IC.EnvironmentExist(provider, environ)) { var ID = GetEnvironmentID(); if (IC.EnvironmentExistByID(provider, environ, ID)) { IC.ShowDatabases(provider, environ, ID); return; } } Console.WriteLine("Environment does not exist!"); return; } Console.WriteLine("Provider {0:G} does not exist!", provider); }; break; case "3": // Remove database { provider = GetProviderName(); if (IC.ProviderExist(provider)) { // Provider exist then find envronment // Ask for environment type environment = SelectEnvironment(); if (environment == 0) { return; // Cancelled } if (environment > 0) { if (IC.EnvironmentExist(provider, environment)) //if (IC.CloudServices.Find(x => x.Name == provider) // .Environments.Exists(y => y.Type == environment)) { var ID = GetEnvironmentID(); if (IC.EnvironmentExistByID(provider, environment, ID)) { InfraGlobal.DatabaseTypes database = SelectDatabase(); if (database == 0) { return; // Cancelled } if (database > 0) { // Delete database IC.DeleteDatabase(provider, environment, ID, database); } } return; } Console.WriteLine("Environment {0:G} does not exist.", environment); } return; } Console.WriteLine("Provider {0:G} does not exist.", provider); }; break; case "4": { Console.WriteLine("Action cancelled."); }; break; default: return; } }