use of com.amazonaws.services.personalize.model.DescribeCampaignRequest in project knime-cloud by knime.
the class AmazonPersonalizeCreateCampaignNodeModel method execute.
/**
* {@inheritDoc}
*/
@Override
protected PortObject[] execute(final PortObject[] inObjects, final ExecutionContext exec) throws Exception {
final CloudConnectionInformation cxnInfo = ((AmazonConnectionInformationPortObject) inObjects[0]).getConnectionInformation();
try (final AmazonPersonalizeConnection personalizeConnection = new AmazonPersonalizeConnection(cxnInfo)) {
final AmazonPersonalize personalizeClient = personalizeConnection.getClient();
final CreateCampaignRequest createCampaignRequest = new CreateCampaignRequest();
final CreateCampaignResult campaign = personalizeClient.createCampaign(createCampaignRequest.withName(m_settings.getCampaignName()).withSolutionVersionArn(m_settings.getSolutionVersion().getARN()).withMinProvisionedTPS(m_settings.getMinProvisionedTPS()));
// TODO Test update of existing campaign
try {
final DescribeCampaignRequest describeCampaignRequest = new DescribeCampaignRequest().withCampaignArn(campaign.getCampaignArn());
AmazonPersonalizeUtils.waitUntilActive(() -> {
final DescribeCampaignResult campaignDescription = personalizeClient.describeCampaign(describeCampaignRequest);
final String status = campaignDescription.getCampaign().getStatus();
exec.setMessage("Creating campaign (Status: " + status + ")");
if (status.equals(Status.CREATED_FAILED.getStatus())) {
personalizeClient.deleteCampaign(new DeleteCampaignRequest().withCampaignArn(campaignDescription.getCampaign().getCampaignArn()));
throw new IllegalStateException("No campaign has been created. Reason: " + campaignDescription.getCampaign().getFailureReason());
}
return status.equals(Status.ACTIVE.getStatus());
}, 1000);
} catch (InterruptedException e) {
// TODO
throw e;
}
if (m_settings.isOutputCampaignArnAsVar()) {
pushFlowVariableString("campaign-ARN", campaign.getCampaignArn());
}
}
return null;
}
use of com.amazonaws.services.personalize.model.DescribeCampaignRequest in project knime-cloud by knime.
the class AbstractAmazonPersonalizePredictNodeDialog method loadSettingsFrom.
/**
* {@inheritDoc}
*/
@Override
protected void loadSettingsFrom(final NodeSettingsRO settings, final PortObjectSpec[] specs) throws NotConfigurableException {
final ConnectionInformationPortObjectSpec object = (ConnectionInformationPortObjectSpec) specs[0];
final CloudConnectionInformation connectionInformation = (CloudConnectionInformation) object.getConnectionInformation();
// Check if the port object has connection information
if (connectionInformation == null) {
throw new NotConfigurableException("No connection information available");
}
// List all existing campaigns
try (final AmazonPersonalizeConnection personalizeConnection = new AmazonPersonalizeConnection(connectionInformation)) {
final AmazonPersonalize personalizeClient = personalizeConnection.getClient();
// Filter only the campaigns that have a solution with the proper recipe type
final DefaultComboBoxModel<NameArnPair> comboBoxModel = new DefaultComboBoxModel<NameArnPair>(AmazonPersonalizeUtils.listAllCampaigns(personalizeClient).stream().filter(e -> {
final String recipeType = personalizeClient.describeRecipe(new DescribeRecipeRequest().withRecipeArn(personalizeClient.describeSolutionVersion(new DescribeSolutionVersionRequest().withSolutionVersionArn(personalizeClient.describeCampaign(new DescribeCampaignRequest().withCampaignArn(e.getCampaignArn())).getCampaign().getSolutionVersionArn())).getSolutionVersion().getRecipeArn())).getRecipe().getRecipeType();
return recipeType.equals(getRecipeType().getType());
}).map(e -> new NameArnPair(e.getName(), e.getCampaignArn())).toArray(NameArnPair[]::new));
m_comboBoxCampaigns.setModel(comboBoxModel);
if (comboBoxModel.getSize() == 0) {
throw new NotConfigurableException("No campaign of type '" + getRecipeType().toString() + "' found. You can create one using the 'Amazon Personalize Create Campaign' node.");
}
} catch (Exception e) {
throw new NotConfigurableException(e.getMessage());
}
// Loading
final DataTableSpec spec = (DataTableSpec) specs[1];
m_settings.loadSettingsForDialog(settings);
final NameArnPair campaign = m_settings.getCampaign();
if (campaign != null) {
m_comboBoxCampaigns.setSelectedItem(campaign);
} else {
m_comboBoxCampaigns.setSelectedItem(m_comboBoxCampaigns.getItemAt(0));
}
m_colSelectionUserID.update(spec, m_settings.getUserIDCol());
m_colSelectionItemID.update(spec, m_settings.getItemIDCol());
m_radioButtonFail.setSelected(m_settings.getMissingValueHandling() == MissingValueHandling.FAIL);
m_radioButtonIgnore.setSelected(m_settings.getMissingValueHandling() == MissingValueHandling.IGNORE);
}
Aggregations