public void AddPath(IServiceAddress root, string pathName, string pathType) { InspectNetwork(); // Check machine is in the schema, MachineProfile machineProfile = CheckMachineInNetwork(root); if (!machineProfile.IsRoot) throw new NetworkAdminException("Machine '" + root + "' is not a root"); // Get the current manager server, MachineProfile man = ManagerServer; if (man == null) throw new NetworkAdminException("No manager server found"); // Check with the root server that the class instantiates, Message outputStream = new RequestMessage("checkPathType"); outputStream.Arguments.Add(pathType); Message m = Command(root, ServiceType.Root, outputStream); if (m.HasError) throw new NetworkAdminException("Type '" + pathType + "' doesn't instantiate on the root"); IServiceAddress managerServer = man.Address; // Create a new empty database, NetworkClient client = new NetworkClient(managerServer, connector); client.Connect(); DataAddress dataAddress = client.CreateEmptyDatabase(); client.Disconnect(); // Perform the command, outputStream = new MessageStream(MessageType.Request); RequestMessage request = new RequestMessage("addPath"); request.Arguments.Add(pathName); request.Arguments.Add(pathType); request.Arguments.Add(dataAddress); ((MessageStream)outputStream).AddMessage(request); request = new RequestMessage("initPath"); request.Arguments.Add(pathName); ((MessageStream)outputStream).AddMessage(request); Message message = Command(root, ServiceType.Root, outputStream); if (message.HasError) throw new NetworkAdminException(message.ErrorMessage); // Tell the manager server about this path, outputStream = new RequestMessage("addPathRootMapping"); outputStream.Arguments.Add(pathName); outputStream.Arguments.Add(root); message = Command(managerServer, ServiceType.Manager, outputStream); if (message.HasError) throw new NetworkAdminException(message.ErrorMessage); }
protected override void OnTearDown() { client.Disconnect(); NetworkProfile.DeregisterBlock(LocalAddress); NetworkProfile.StopService(LocalAddress, ServiceType.Block); NetworkProfile.DeregisterRoot(LocalAddress); NetworkProfile.StopService(LocalAddress, ServiceType.Root); NetworkProfile.DeregisterManager(LocalAddress); NetworkProfile.StopService(LocalAddress, ServiceType.Manager); }
public void AddPath(IServiceAddress root, string pathName, string pathType) { InspectNetwork(); // Check machine is in the schema, MachineProfile machineProfile = CheckMachineInNetwork(root); if (!machineProfile.IsRoot) { throw new NetworkAdminException("Machine '" + root + "' is not a root"); } // Get the current manager server, MachineProfile man = ManagerServer; if (man == null) { throw new NetworkAdminException("No manager server found"); } // Check with the root server that the class instantiates, Message outputStream = new RequestMessage("checkPathType"); outputStream.Arguments.Add(pathType); Message m = Command(root, ServiceType.Root, outputStream); if (m.HasError) { throw new NetworkAdminException("Type '" + pathType + "' doesn't instantiate on the root"); } IServiceAddress managerServer = man.Address; // Create a new empty database, NetworkClient client = new NetworkClient(managerServer, connector); client.Connect(); DataAddress dataAddress = client.CreateEmptyDatabase(); client.Disconnect(); // Perform the command, outputStream = new MessageStream(MessageType.Request); RequestMessage request = new RequestMessage("addPath"); request.Arguments.Add(pathName); request.Arguments.Add(pathType); request.Arguments.Add(dataAddress); ((MessageStream)outputStream).AddMessage(request); request = new RequestMessage("initPath"); request.Arguments.Add(pathName); ((MessageStream)outputStream).AddMessage(request); Message message = Command(root, ServiceType.Root, outputStream); if (message.HasError) { throw new NetworkAdminException(message.ErrorMessage); } // Tell the manager server about this path, outputStream = new RequestMessage("addPathRootMapping"); outputStream.Arguments.Add(pathName); outputStream.Arguments.Add(root); message = Command(managerServer, ServiceType.Manager, outputStream); if (message.HasError) { throw new NetworkAdminException(message.ErrorMessage); } }