public static Module linkContext(Context context) { return linkContext(context.getId(), Suppliers.ofInstance(context)); }
public static Module linkContext(Context context) { return linkContext(context.getId(), Suppliers.ofInstance(context)); }
public static Module linkContext(Context context) { return linkContext(context.getId(), Suppliers.ofInstance(context)); }
@Override public void updateOnRemoved(BlobStore blobStore) { cache.removeAll(blobStore.getContext().unwrap().getId()); }
public static Module linkView(View view) { return linkView(view.unwrap().getId(), Suppliers.ofInstance(view)); }
public static Module linkView(View view) { return linkView(view.unwrap().getId(), Suppliers.ofInstance(view)); }
public static Module linkView(View view) { return linkView(view.unwrap().getId(), Suppliers.ofInstance(view)); }
@Override public void updateOnRemoved(BlobStore blobStore) { for (String cacheKey : ServiceHelper.findCacheKeysForService(blobStore)) { cache.removeAll(blobStore.getContext().unwrap().getId()); } } }
protected void printComputeApis(Iterable<ApiMetadata> apis, List<ComputeService> computeServices, String indent, PrintStream out) { out.println(String.format(PROVIDERFORMAT, "[id]", "[type]", "[service]")); for (ApiMetadata api : apis) { StringBuilder sb = new StringBuilder(); sb.append("[ "); for (ComputeService computeService : computeServices) { String contextName = (String) computeService.getContext().unwrap().getName(); if (computeService.getContext().unwrap().getId().equals(api.getId()) && contextName != null) { sb.append(contextName).append(" "); } } sb.append("]"); out.println(String.format(PROVIDERFORMAT, api.getId(), "compute", sb.toString())); } }
protected void printBlobStoreApis(Iterable<ApiMetadata> apis, List<BlobStore> blobStores, String indent, PrintStream out) { out.println(String.format(PROVIDERFORMAT, "[id]", "[type]", "[service]")); for (ApiMetadata api : apis) { StringBuilder sb = new StringBuilder(); sb.append("[ "); for (BlobStore blobStore : blobStores) { String contextName = (String) blobStore.getContext().unwrap().getName(); if (blobStore.getContext().unwrap().getId().equals(api.getId())) { sb.append(contextName).append(" "); } } sb.append("]"); out.println(String.format(PROVIDERFORMAT, api.getId(), "blobstore", sb.toString())); } }
protected void printComputeProviders(Iterable<ProviderMetadata> providers, List<ComputeService> computeServices, String indent, PrintStream out) { out.println(String.format(PROVIDERFORMAT, "[id]", "[type]", "[service]")); for (ProviderMetadata provider : providers) { StringBuilder sb = new StringBuilder(); sb.append("[ "); for (ComputeService computeService : computeServices) { String contextName = (String) computeService.getContext().unwrap().getName(); if (computeService.getContext().unwrap().getId().equals(provider.getId()) && contextName != null) { sb.append(contextName).append(" "); } } sb.append("]"); out.println(String.format(PROVIDERFORMAT, provider.getId(), "compute", sb.toString())); } }
protected void printBlobStoreProviders(Iterable<ProviderMetadata> providers, List<BlobStore> blobStores, String indent, PrintStream out) { out.println(String.format(PROVIDERFORMAT, "[id]", "[type]", "[service]")); for (ProviderMetadata provider : providers) { StringBuilder sb = new StringBuilder(); sb.append("[ "); for (BlobStore blobStore : blobStores) { String contextName = (String) blobStore.getContext().unwrap().getName(); if (blobStore.getContext().unwrap().getId().equals(provider.getId())) { sb.append(contextName).append(" "); } } sb.append("]"); out.println(String.format(PROVIDERFORMAT, provider.getId(), "blobstore", sb.toString())); } }
@Override public int complete(String buffer, int cursor, List<String> candidates) { delegate.getStrings().clear(); if (computeServices != null && !computeServices.isEmpty()) { for(ComputeService computeService:computeServices) { delegate.getStrings().add(computeService.getContext().unwrap().getId()); } } return delegate.complete(buffer, cursor, candidates); }
@Override protected Object doExecute() throws Exception { BlobStore blobStore = getBlobStore(); for (String container : containerNames) { blobStore.deleteContainer(container); cacheProvider.getProviderCacheForType("container").remove(blobStore.getContext().unwrap().getId(), container); } return null; } }
@Override protected Object doExecute() throws Exception { BlobStore blobStore = getBlobStore(); for (String blobName : blobNames) { blobStore.removeBlob(container, blobName); cacheProvider.getProviderCacheForType("blob").remove(blobStore.getContext().unwrap().getId(), blobName); } return null; } }
@Override public int complete(String buffer, int cursor, List<String> candidates) { try { if (displayProvidersWithoutService) { for (ProviderMetadata providerMetadata : Providers.viewableAs(TypeToken.of(ComputeServiceContext.class))) { delegate.getStrings().add(providerMetadata.getId()); } } else if (computeServices != null) { for (ComputeService computeService : computeServices) { String id = computeService.getContext().unwrap().getId(); if (Providers.withId(id) != null) { delegate.getStrings().add(computeService.getContext().unwrap().getId()); } } } } catch (Exception ex) { // noop } return delegate.complete(buffer, cursor, candidates); }
@Test public void testAddPermissionsToNode() { IpPermission ssh = newPermission(22); IpPermission jmx = newPermission(31001); SecurityGroup sharedGroup = newGroup(customizer.getNameForSharedSecurityGroup()); SecurityGroup group = newGroup("id"); when(securityApi.listSecurityGroupsForNode(NODE_ID)).thenReturn(ImmutableSet.of(sharedGroup, group)); SecurityGroup updatedSecurityGroup = newGroup("id", ImmutableSet.of(ssh, jmx)); when(securityApi.addIpPermission(ssh, group)).thenReturn(updatedSecurityGroup); when(securityApi.addIpPermission(jmx, group)).thenReturn(updatedSecurityGroup); when(computeService.getContext().unwrap().getId()).thenReturn("aws-ec2"); customizer.addPermissionsToLocation(jcloudsMachineLocation, ImmutableList.of(ssh, jmx)); verify(securityApi, never()).createSecurityGroup(anyString(), any(Location.class)); verify(securityApi, times(1)).addIpPermission(ssh, group); verify(securityApi, times(1)).addIpPermission(jmx, group); }
@Test public void testRemovePermissionsFromNode() { IpPermission ssh = newPermission(22); IpPermission jmx = newPermission(31001); SecurityGroup sharedGroup = newGroup(customizer.getNameForSharedSecurityGroup()); SecurityGroup group = newGroup("id"); when(securityApi.listSecurityGroupsForNode(NODE_ID)).thenReturn(ImmutableSet.of(sharedGroup, group)); SecurityGroup updatedSecurityGroup = newGroup("id", ImmutableSet.of(ssh, jmx)); when(securityApi.addIpPermission(ssh, group)).thenReturn(updatedSecurityGroup); when(securityApi.addIpPermission(jmx, group)).thenReturn(updatedSecurityGroup); when(computeService.getContext().unwrap().getId()).thenReturn("aws-ec2"); customizer.addPermissionsToLocation(jcloudsMachineLocation, ImmutableList.of(ssh, jmx)); customizer.removePermissionsFromLocation(jcloudsMachineLocation, ImmutableList.of(jmx)); verify(securityApi, never()).removeIpPermission(ssh, group); verify(securityApi, times(1)).removeIpPermission(jmx, group); }
@Test public void testSecurityGroupsLoadedWhenAddingPermissionsToUncachedNode() { IpPermission ssh = newPermission(22); SecurityGroup sharedGroup = newGroup(customizer.getNameForSharedSecurityGroup()); SecurityGroup uniqueGroup = newGroup("unique"); when(securityApi.listSecurityGroupsForNode(NODE_ID)).thenReturn(ImmutableSet.of(sharedGroup, uniqueGroup)); when(computeService.getContext().unwrap().getId()).thenReturn("aws-ec2"); SecurityGroup updatedSecurityGroup = newGroup(uniqueGroup.getId(), ImmutableSet.of(ssh)); when(securityApi.addIpPermission(ssh, sharedGroup)).thenReturn(updatedSecurityGroup); SecurityGroup updatedUniqueSecurityGroup = newGroup(uniqueGroup.getId(), ImmutableSet.of(ssh)); when(securityApi.addIpPermission(ssh, updatedUniqueSecurityGroup)).thenReturn(updatedUniqueSecurityGroup); // Expect first call to list security groups on nodeId, second to use cached version customizer.addPermissionsToLocation(jcloudsMachineLocation, ImmutableSet.of(ssh)); customizer.addPermissionsToLocation(jcloudsMachineLocation, ImmutableSet.of(ssh)); verify(securityApi, times(1)).listSecurityGroupsForNode(NODE_ID); verify(securityApi, times(2)).addIpPermission(ssh, uniqueGroup); verify(securityApi, never()).addIpPermission(any(IpPermission.class), eq(sharedGroup)); }
@Test public void testRemoveMultiplePermissionsFromNode() { IpPermission ssh = newPermission(22); IpPermission jmx = newPermission(31001); SecurityGroup sharedGroup = newGroup(customizer.getNameForSharedSecurityGroup()); SecurityGroup group = newGroup("id"); when(securityApi.listSecurityGroupsForNode(NODE_ID)).thenReturn(ImmutableSet.of(sharedGroup, group)); SecurityGroup updatedSecurityGroup = newGroup("id", ImmutableSet.of(ssh, jmx)); when(securityApi.addIpPermission(ssh, group)).thenReturn(updatedSecurityGroup); when(securityApi.addIpPermission(jmx, group)).thenReturn(updatedSecurityGroup); when(computeService.getContext().unwrap().getId()).thenReturn("aws-ec2"); customizer.addPermissionsToLocation(jcloudsMachineLocation, ImmutableList.of(ssh, jmx)); when(securityApi.removeIpPermission(ssh, group)).thenReturn(updatedSecurityGroup); when(securityApi.removeIpPermission(jmx, group)).thenReturn(updatedSecurityGroup); customizer.removePermissionsFromLocation(jcloudsMachineLocation, ImmutableList.of(ssh, jmx)); verify(securityApi, times(1)).removeIpPermission(ssh, group); verify(securityApi, times(1)).removeIpPermission(jmx, group); }