use of com.microsoft.azure.toolkit.lib.common.task.AzureTask in project azure-tools-for-java by Microsoft.
the class SettingsStep method retrieveVirtualNetworks.
private void retrieveVirtualNetworks() {
final AzureString title = AzureOperationBundle.title("vm.list_virtual_networks");
AzureTaskManager.getInstance().runInBackground(new AzureTask(project, title, false, () -> {
final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator();
progressIndicator.setIndeterminate(true);
if (virtualNetworks == null) {
virtualNetworks = azure.networks().list();
}
final Runnable task = () -> networkComboBox.setModel(getVirtualNetworkModel(model.getVirtualNetwork(), model.getSubnet()));
AzureTaskManager.getInstance().runLater(task);
}));
if (virtualNetworks == null) {
AzureTaskManager.getInstance().runAndWait(() -> {
final DefaultComboBoxModel loadingVNModel = new DefaultComboBoxModel(new String[] { CREATE_NEW, "<Loading...>" }) {
@Override
public void setSelectedItem(Object o) {
super.setSelectedItem(o);
if (CREATE_NEW.equals(o)) {
showNewVirtualNetworkForm();
} else {
model.setVirtualNetwork((Network) o);
}
}
};
loadingVNModel.setSelectedItem(null);
networkComboBox.setModel(loadingVNModel);
subnetComboBox.removeAllItems();
subnetComboBox.setEnabled(false);
});
}
}
use of com.microsoft.azure.toolkit.lib.common.task.AzureTask in project azure-tools-for-java by Microsoft.
the class SettingsStep method retrieveStorageAccounts.
private void retrieveStorageAccounts() {
final AzureString title = AzureOperationBundle.title("vm.list_storage_accounts");
AzureTaskManager.getInstance().runInBackground(new AzureTask(project, title, false, () -> {
final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator();
progressIndicator.setIndeterminate(true);
if (storageAccounts == null) {
List<StorageAccount> accounts = Azure.az(AzureStorageAccount.class).subscription(model.getSubscription().getId()).list();
storageAccounts = new TreeMap<>();
for (StorageAccount storageAccount : accounts) {
storageAccounts.put(storageAccount.name(), storageAccount);
}
}
refreshStorageAccounts(null);
}));
if (storageAccounts == null) {
final DefaultComboBoxModel loadingSAModel = new DefaultComboBoxModel(new String[] { CREATE_NEW, "<Loading...>" }) {
@Override
public void setSelectedItem(Object o) {
if (CREATE_NEW.equals(o)) {
showNewStorageForm();
} else {
super.setSelectedItem(o);
}
}
};
loadingSAModel.setSelectedItem(null);
AzureTaskManager.getInstance().runAndWait(() -> storageComboBox.setModel(loadingSAModel), AzureTask.Modality.ANY);
}
}
use of com.microsoft.azure.toolkit.lib.common.task.AzureTask in project azure-tools-for-java by Microsoft.
the class SettingsStep method retrieveAvailabilitySets.
private void retrieveAvailabilitySets() {
final AzureString title = AzureOperationBundle.title("vm.list_availability_sets");
AzureTaskManager.getInstance().runInBackground(new AzureTask(project, title, false, () -> {
final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator();
progressIndicator.setIndeterminate(true);
if (availabilitySets == null) {
availabilitySets = azure.availabilitySets().list();
}
AzureTaskManager.getInstance().runLater(() -> availabilityComboBox.setModel(getAvailabilitySetsModel(model.getAvailabilitySet())));
}));
if (availabilitySets == null) {
AzureTaskManager.getInstance().runAndWait(new Runnable() {
@Override
public void run() {
final DefaultComboBoxModel loadingPipModel = new DefaultComboBoxModel(new String[] { NONE, CREATE_NEW, "<Loading...>" }) {
@Override
public void setSelectedItem(Object o) {
super.setSelectedItem(o);
if (CREATE_NEW.equals(o)) {
model.setWithNewAvailabilitySet(true);
model.setAvailabilitySet(null);
} else if (NONE.equals(o)) {
model.setAvailabilitySet(null);
model.setWithNewAvailabilitySet(false);
} else {
}
}
};
loadingPipModel.setSelectedItem(null);
pipCombo.setModel(loadingPipModel);
}
}, AzureTask.Modality.ANY);
}
}
use of com.microsoft.azure.toolkit.lib.common.task.AzureTask in project azure-tools-for-java by Microsoft.
the class ContainerRegistryPropertyView method pullImage.
private void pullImage() {
final AzureString title = AzureOperationBundle.title("docker|image.pull", currentRepo);
AzureTaskManager.getInstance().runInBackground(new AzureTask(null, title, false, () -> {
try {
if (Utils.isEmptyString(currentRepo) || Utils.isEmptyString(currentTag)) {
throw new Exception(REPO_TAG_NOT_AVAILABLE);
}
final Registry registry = ContainerRegistryMvpModel.getInstance().getContainerRegistry(subscriptionId, registryId);
final PrivateRegistryImageSetting setting = ContainerRegistryMvpModel.getInstance().createImageSettingWithRegistry(registry);
final String image = String.format("%s:%s", currentRepo, currentTag);
final String fullImageTagName = String.format("%s/%s", registry.loginServerUrl(), image);
DockerClient docker = DefaultDockerClient.fromEnv().build();
DockerUtil.pullImage(docker, registry.loginServerUrl(), setting.getUsername(), setting.getPassword(), fullImageTagName);
String message = String.format(IMAGE_PULL_SUCCESS, fullImageTagName);
UIUtils.showNotification(statusBar, message, MessageType.INFO);
sendTelemetry(true, subscriptionId, null);
} catch (Exception e) {
UIUtils.showNotification(statusBar, e.getMessage(), MessageType.ERROR);
sendTelemetry(false, subscriptionId, e.getMessage());
}
}));
}
use of com.microsoft.azure.toolkit.lib.common.task.AzureTask in project azure-tools-for-java by Microsoft.
the class CreateWebAppAction method createWebApp.
@AzureOperation(name = "webapp.create_detail", params = { "config.getName()" }, type = AzureOperation.Type.ACTION)
private Single<IWebApp> createWebApp(final WebAppConfig config) {
final AzureString title = title("webapp.create_detail", config.getName());
final AzureTask<IWebApp> task = new AzureTask<>(null, title, false, () -> {
final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator();
indicator.setIndeterminate(true);
return webappService.createWebApp(config);
});
return AzureTaskManager.getInstance().runInModalAsObservable(task).toSingle().doOnSuccess(app -> {
this.notifyCreationSuccess(app);
this.refreshAzureExplorer(app);
});
}
Aggregations