andreaturli commented on this pull request.
lgtm, some minor comments
> @@ -114,7 +103,7 @@ public static Properties defaultProperties() {
properties.put(API_VERSION_PREFIX +
PublicIPAddressApi.class.getSimpleName(), "2015-06-15");
properties.put(API_VERSION_PREFIX +
ResourceGroupApi.class.getSimpleName(), "2015-01-01");
properties.put(API_VERSION_PREFIX +
ResourceProviderApi.class.getSimpleName(), "2015-01-01");
- properties.put(API_VERSION_PREFIX +
StorageAccountApi.class.getSimpleName(), STORAGE_API_VERSION);
+ properties.put(API_VERSION_PREFIX +
StorageAccountApi.class.getSimpleName(), "2015-06-15");
we should decide at some point if we want to use the latest version of all of
them or just use them randomly :D
> }
- public void deleteResourceGroupIfEmpty(String group) {
- if (api.getVirtualMachineApi(group).list().isEmpty()
- && api.getStorageAccountApi(group).list().isEmpty()
+ public boolean deleteResourceGroupIfEmpty(String group) {
+ boolean deleted = false;
+ if (api.getVirtualMachineApi(group).list().isEmpty() &&
api.getStorageAccountApi(group).list().isEmpty()
those api calls are really expensive, I'll try to replace them in a subsequent
PR
> RegionAndId regionAndId = RegionAndId.fromSlashEncoded(id);
- String group = locationToResourceGroupName.apply(regionAndId.region());
-
+ ResourceGroup resourceGroup =
resourceGroupMap.getUnchecked(regionAndId.region());
+ String group = resourceGroup.name();
[minor] could you name it `resourceGroupName`
> final RegionAndId regionAndId =
> RegionAndId.fromSlashEncoded(cloneTemplate.getSourceNodeId());
- final String group =
locationToResourceGroupName.apply(regionAndId.region());
+ ResourceGroup resourceGroup =
resourceGroupMap.getUnchecked(regionAndId.region());
+ final String group = resourceGroup.name();
[minor] maybe `resourceGroupName`?
> + AzureComputeSecurityGroupExtension(AzureComputeApi api, @Memoized
> Supplier<Set<? extends Location>> locations,
+ Function<NetworkSecurityGroup, SecurityGroup> groupConverter,
+ SecurityGroupAvailablePredicateFactory securityRuleAvailable,
+ @Named(TIMEOUT_RESOURCE_DELETED) Predicate<URI> resourceDeleted,
+ LoadingCache<String, ResourceGroup> resourceGroupMap) {
+ this.api = api;
+ this.locations = locations;
+ this.securityGroupConverter = groupConverter;
+ this.securityGroupAvailable = securityRuleAvailable;
+ this.resourceDeleted = resourceDeleted;
+ this.resourceGroupMap = resourceGroupMap;
+ }
+
+ @Override
+ public Set<SecurityGroup> listSecurityGroups() {
+ return ImmutableSet.copyOf(concat(transform(locations.get(), new
Function<Location, Set<SecurityGroup>>() {
why immutableSet?
> + VirtualMachine vm =
> api.getVirtualMachineApi(resourceGroup.name()).get(regionAndId.id());
+ List<IdReference> networkInterfacesIdReferences =
vm.properties().networkProfile().networkInterfaces();
+ List<NetworkSecurityGroup> networkGroups = new
ArrayList<NetworkSecurityGroup>();
+
+ for (IdReference networkInterfaceCardIdReference :
networkInterfacesIdReferences) {
+ String nicName =
Iterables.getLast(Splitter.on("/").split(networkInterfaceCardIdReference.id()));
+ NetworkInterfaceCard card =
api.getNetworkInterfaceCardApi(resourceGroup.name()).get(nicName);
+ if (card != null && card.properties().networkSecurityGroup() != null)
{
+ String secGroupName = Iterables.getLast(Splitter.on("/").split(
+ card.properties().networkSecurityGroup().id()));
+ NetworkSecurityGroup group =
api.getNetworkSecurityGroupApi(resourceGroup.name()).get(secGroupName);
+ networkGroups.add(group);
+ }
+ }
+
+ return ImmutableSet.copyOf(transform(filter(networkGroups, notNull()),
securityGroupConverter));
why immutableSet?
> + final RegionAndId regionAndId =
> RegionAndId.fromSlashEncoded(group.getId());
+ ResourceGroup resourceGroup =
resourceGroupMap.getUnchecked(regionAndId.region());
+
+ NetworkSecurityGroupApi groupApi =
api.getNetworkSecurityGroupApi(resourceGroup.name());
+ NetworkSecurityGroup networkSecurityGroup =
groupApi.get(regionAndId.id());
+
+ if (networkSecurityGroup == null) {
+ throw new IllegalArgumentException("Security group " +
group.getName() + " was not found");
+ }
+
+ NetworkSecurityRuleApi ruleApi =
api.getNetworkSecurityRuleApi(resourceGroup.name(),
networkSecurityGroup.name());
+ int nextPriority = getRuleStartingPriority(networkSecurityGroup);
+
+ for (String ipRange : ipRanges) {
+ NetworkSecurityRuleProperties properties =
NetworkSecurityRuleProperties.builder()
+ .protocol(Protocol.fromValue(protocol.name())) //
please remove `//`
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/347#pullrequestreview-18640274