Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A guid identifier is always causing a "change" to a tile configuraiton #315

Closed
hjaffan opened this issue Jan 23, 2019 · 4 comments
Closed

Comments

@hjaffan
Copy link

hjaffan commented Jan 23, 2019

We have a tile that we are configuring using the om cli and we have noticed the following issue:

Even though we have not altered the configuration of the tile, there is a guid that seems to be auto generated by opsman that's causing it to think there is an update.

Here's an example of the guid that is randomly being generated everytime there is a new configuration.

This perticular one is happening when configuring an appdynamics tile version v4.5.556.

I got this based on the diff I made based on the deployed state vs the staged state.

  - deployed: true
    records:
    - properties:
      - deployed: false
        identifier: guid
        value: fa681753-e893-41fb-b2d0-cd7e03999529
      - deployed: false

om cli version is 0.44.0 and the opsman version is v2.3-build.194

@kcboyle
Copy link
Contributor

kcboyle commented Jan 23, 2019

@hjaffan in the metadata of the tile you are using, does the collection in question have a name identifier? if not, it could potentially be related to this issue: #207

Can you confirm?

@hjaffan
Copy link
Author

hjaffan commented Jan 23, 2019

@kcboyle so here's what I see in the metadata file

- configurable: true
  description: Appdynamics Controller Information
  label: Appdynamics Service Information
  name: appd_plans
  optional: false
  property_blueprints:
  - label: Plan id
    name: guid
    optional: false
    type: uuid
    unique: true
  - configurable: true
    label: Controller Configuration Name
    name: plan-name
    type: string
  - configurable: true
    label: Controller Configuration Description
    name: plan-description
    type: string
  - configurable: true
    descritption: Controller Account Name
    label: Account Name
    name: account-name
    type: string
  - configurable: true
    description: Access key for the above specified controller account
    label: Account Access Key
    name: account-access-key
    type: string
  - configurable: true
    description: Host name of the controller
    label: Controller Host
    name: host-name
    type: string
  - configurable: true
    description: Controller Port
    label: Controller Port
    name: port
    type: string
  - configurable: true
    default: false
    label: SSL
    name: ssl-enabled
    type: boolean
  type: collection

So the collection type does have a name property for that guid. Is this what you meant?

@kcboyle
Copy link
Contributor

kcboyle commented Jan 23, 2019

@hjaffan

The problem described in #207 details that Ops Manager will delete all records
currently deployed and create new ones (this changes the guid for the collection). because of this, Ops Manager treats
the configure-product as a "change" (even if nothing was changed.) in order to address this, the PR: #227
was created and pulled in. What this did was look in the property blueprints for the value of name, and would put the
previous guid in the configuration when configuring the product so Ops Manager did not recognize a change. You can find
an example of this in the PAS tile:

- name: networking_poe_ssl_certs
  type: collection
  configurable: true
  property_blueprints:
  - name: name       <-------------------------------------
    type: string
    configurable: true
  - name: certificate
    type: rsa_cert_credentials
    configurable: true
  named_manifests:
  - name: routing_certificates_and_private_keys
    manifest: |
      cert_chain: (( current_record.certificate.cert_pem ))
      private_key: (( current_record.certificate.private_key_pem ))

When configuring PAS with networking_poe_ssl_certs listed, the PR would find the existing guid, and "decorate" the
configuration to let it behave properly within Ops Manager.

In your example previous, there are many property blueprints, but none that match the intended interface fixed by the PR.

At the end of issue #207, @fredwangwang proposed a solution that would change
staged-config and configure-product so that all collections would return the current guid in Ops Manager. We believe
this would fix the issue for users pulling the config down first using staged-config and then setting it using
configure-product.

om can use guids defined in Ops Manager, but it cannot create new guids. Therefore with existing deployments, we would
need to run staged-config to get the existing guid before configure-product could work properly.

This work has not yet been completed in om (but there is a pr-welcome if you would like to jump on it before the
team prioritizes it:https://www.pivotaltracker.com/story/show/163161728 NOTE: those without permission will not be
able to access the story).

Does this make sense? And/or does this seem like it would solve the problem you are experiencing with the appdynamics tile?

If so, I would like to reference this issue in #207, and close this issue.

@kcboyle
Copy link
Contributor

kcboyle commented Feb 4, 2019

Attaching this issue to #207, and closing this one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants