Package org.platformlayer.ops.pool

Examples of org.platformlayer.ops.pool.NetworkAddressPoolAssignment


    instance.addChild(ManagedDirectory.build(getInstanceDir(), "700"));

    // TODO: If we're not going to assign an IPV4 redirect, we might not need this
    final Provider<AddressModel> address4;
    {
      NetworkAddressPoolAssignment provider = instance.addChild(NetworkAddressPoolAssignment.class);
      provider.holder = model.getKey();
      provider.poolProvider = DirectCloudUtils.getPrivateAddressPool4();

      address4 = provider;
    }

    final Provider<AddressModel> address6;
    {
      NetworkAddressPoolAssignment provider = instance.addChild(NetworkAddressPoolAssignment.class);
      provider.holder = model.getKey();
      provider.poolProvider = directCloudHelpers.getAddressPool6();

      address6 = provider;
    }
View Full Code Here


      addChild(instance);
    }

    instance.addChild(ManagedDirectory.build(getInstanceDir(), "700"));

    final NetworkAddressPoolAssignment address4;
    {
      address4 = instance.addChild(NetworkAddressPoolAssignment.class);
      address4.holder = owner;
      address4.poolProvider = DirectCloudUtils.getPrivateAddressPool4();
    }

    final NetworkAddressPoolAssignment address6;
    {
      address6 = instance.addChild(NetworkAddressPoolAssignment.class);
      address6.holder = owner;
      address6.poolProvider = directCloudHelpers.getAddressPool6();
    }

    {
      NetworkTunDevice tun = injected(NetworkTunDevice.class);
      tun.interfaceName = getEthernetDeviceName();
      tun.bridgeName = new Provider<String>() {
        @Override
        public String get() {
          DirectHost host = OpsContext.get().getInstance(DirectHost.class);
          return host.bridge;
        }
      };
      instance.addChild(tun);
    }

    final SocketAddressPoolAssignment assignMonitorPort;
    {
      assignMonitorPort = injected(SocketAddressPoolAssignment.class);
      assignMonitorPort.holder = owner;
      assignMonitorPort.poolProvider = DirectCloudUtils.getKvmMonitorPortPool();
      instance.addChild(assignMonitorPort);
    }

    final SocketAddressPoolAssignment assignVncPort;
    {
      assignVncPort = injected(SocketAddressPoolAssignment.class);
      assignVncPort.holder = owner;
      assignVncPort.poolProvider = DirectCloudUtils.getVncPortPool();
      instance.addChild(assignVncPort);
    }

    {
      ConfigIso iso = injected(ConfigIso.class);
      iso.isoFile = getConfigIsoPath();
      iso.buildDir = new File(getInstanceDir(), "config_iso_src");
      iso.model = new TemplateDataSource() {
        @Override
        public void buildTemplateModel(Map<String, Object> model) throws OpsException {
          InterfaceModel eth0 = InterfaceModel.build("eth0");
          AddressModel ipv4 = address4.get();
          eth0.addAddress(ipv4);

          AddressModel ipv6 = address6.get();
          eth0.addAddress(ipv6);

          List<InterfaceModel> interfaces = Lists.newArrayList();
          interfaces.add(eth0);

          model.put("interfaces", interfaces);

          List<String> authorizedKeys = Lists.newArrayList();
          authorizedKeys.add(OpenSshUtils.serialize(sshPublicKey));
          model.put("authorizedKeys", authorizedKeys);
        }
      };

      instance.addChild(iso);
    }

    {
      DownloadImage download = injected(DownloadImage.class);
      download.imageFile = getImagePath();
      download.recipeKey = recipeId;
      download.imageFormats = Arrays.asList(ImageFormat.DiskRaw, ImageFormat.DiskQcow2);
      instance.addChild(download);
    }

    {
      ManagedKvmInstance kvmInstance = addChild(ManagedKvmInstance.class);

      kvmInstance.id = id;
      kvmInstance.memoryMb = Math.max(256, minimumMemoryMB);
      kvmInstance.vcpus = 1;
      kvmInstance.base = getInstanceDir();
      kvmInstance.monitor = assignMonitorPort;
      kvmInstance.vnc = assignVncPort;
      kvmInstance.nics = buildVnics();
      kvmInstance.drives = buildDrives();

      kvmInstance.addresses.add(address4);
      kvmInstance.addresses.add(address6);
    }

    {
      final DirectInstance model = OpsContext.get().getInstance(DirectInstance.class);

      OpsProvider<TagChanges> tagChanges = new OpsProvider<TagChanges>() {
        @Override
        public TagChanges get() {
          TagChanges tagChanges = new TagChanges();

          tagChanges.addTags.add(Tag.INSTANCE_KEY.build(model.getKey()));

          AddressModel ipv4 = address4.get();
          AddressModel ipv6 = address6.get();

          tagChanges.addTags.add(Tag.NETWORK_ADDRESS.build(ipv4));
          tagChanges.addTags.add(Tag.NETWORK_ADDRESS.build(ipv6));

          return tagChanges;
View Full Code Here

TOP

Related Classes of org.platformlayer.ops.pool.NetworkAddressPoolAssignment

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.